私は配列を試していて、Steve Holznerの "Beginning Ruby on Rails"という本を読んでいます。私はプログラムを作った:Array TypeError:Fixnumを文字列に変換できません
array = ['Hello', 'there', 1, 2]
puts array[1]
puts array[3]
puts array.length
array2 = Array.new
puts array2.length
array2[0] = "Banana"
array2[1] = 6
puts array2[0] + " " + array2[1]
puts array3.length
それはあまりしませんが、私はそれを実行したときに、私はこのエラーが出るのはなぜ私はエラーに
arrays.rb:9:in `+': can't convert Fixnum into String (TypeError)
from arrays.rb:9
を取得しますか?
秒でビートします。 :) –
私はここにエラーを投げることを追加したいと思います。強く型付けされた言語の機能です。Rubyの一例です。弱く型付けされたPHPであるPHPは、そのような攻撃を可能にします。 – bernie
@bernieこれは、Rubyの型強制ルールの直接の結果であり、強い型付けではありません。たとえば、RubyのFloat + Fixnumは、Rubyがあるタイプを他のタイプに強制する方法を知っているため、合法です。実際にはFixnumを再び開き、String + Fixnumを合法化する 'coerce'メソッドを追加することもできます。 –