我正在尝试创建一个Country对象数组。我已经检查了代码的每个部分,到目前为止唯一不起作用的是将Country对象实际添加到数组中。
有人可以帮我理解为什么
array << object
不起作用?整个代码可以在http://pastebin.com/jNyJvS3c找到,问题部分在第23行。
答案 0 :(得分: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
答案 1 :(得分:0)
在第23行,你实际上将一个块传递给nil?方法。这个区块{@countries&lt;&lt; country}永远不会被称为方法nil?并不期待一个阻止。
所以正确的方式做你需要的:
def add_country(country)
@countries << country unless country.nil?
end