我做了一個簡單的程序與一個單一的方法,我試圖測試它,但我一直得到這個奇怪的錯誤,我不知道爲什麼它繼續發生。 這是我對我寫的唯一方法代碼:我得到一個「未定義的方法」新...「(每次更改的數字)」
def make_database(lines)
i = 0
foods = hash.new()
while i < lines.length do
lines[i] = lines[i].chomp()
words = lines[i].split(',')
if(words[1].casecmp("b") == 0)
foods[words[0]] = words[3]
end
end
return foods
end
然後這裏是我有調用方法(同一程序中)。
if __FILE__ == $PROGRAM_NAME
lines = []
$stdin.each { |line| lines << line}
foods = make_database(lines).new
puts foods
end
我很痛苦迷茫,特別是因爲它給了我一個不同的隨機數爲每個「未定義的方法‘新’的(隨機數)」。
將塊拆分爲lambda可能會使事情更容易遵循,然後可以說'lines.map(&into_pieces).reject(&those_i_dont_want).each_with_object({},&add_to_hash)'等等。 –
[將我的線條剪成碎片!](https://youtu.be/j0lSpNtjPM8)[對不起,無法抗拒:-D] –