2015-11-15 110 views
-2

我想創建一個Country對象的數組。我已經檢查了代碼的每一部分,到目前爲止,唯一不起作用的是將Country對象實際添加到數組中。
有人能幫我理解爲什麼
array << object
不起作用?整個代碼可以在這裏找到http://pastebin.com/jNyJvS3c並且問題部分在第23行。添加對象到初始化@array

+2

你可以粘貼你的代碼在你的問題,並使用代碼格式化來突出他們作爲代碼 –

+2

我投票關閉這一問題作爲題外話,因爲尋求調試幫助的問題(「**爲什麼不是這個代碼工作?」)必須包括所需的行爲,*特定的問題或錯誤*和*在問題本身中重現它*所需的最短代碼* *。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

回答

1

在代碼country.nil? {@countries << country};中,{...}中的代碼被視爲塊並且未被執行。下面是更正

下面是與修正這些功能提示:

def add_country(country) 
    @countries << country unless country.nil? 
    end 

    def to_s(n) 
    string = "" 
    for i in 0..n do 
     string << @countries[i].to_s unless @countries[i].nil? 
    end 
    return string 
    end 
+0

omgg非常感謝你!我從上個星期五開始講塊,並且已經忘了x(但是謝謝:) 除非語法,我認爲這樣會非常有用,所以很高興知道我可以把它放在最後而不是開頭線 – Scy

0

在第23行,你實際上是一個塊傳遞到零?方法。這個塊{@countries < < country}永遠不會被稱爲方法nil?不期望一個塊。

所以正確的方式做你需要的東西:

def add_country(country) 
    @countries << country unless country.nil? 
end