我正在試驗數組,並且正在閱讀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
爲什麼會出現這個錯誤?
打敗我秒。 :) – 2012-03-13 03:26:57
我想在這裏添加一個錯誤是強類型語言的一個特性,其中Ruby就是一個例子。 PHP是一種弱類型語言,它會允許這種欺騙行爲。 – bernie 2012-03-13 03:30:22
@bernie它更多的是Ruby類型強制規則的直接結果,而不是它的強類型。例如,Ruby中的Float + Fixnum是合法的,因爲Ruby知道如何強制一種類型到另一種類型。你實際上可以重新打開Fixnum並添加一個'coerce'方法,這個方法也會使String + Fixnum合法。 – 2012-06-14 16:58:15