私は単一の方法で簡単なプログラムを作ったが、それをテストしようとしているが、奇妙なエラーが発生し、なぜそれが起こっているのか分かりません。 は、ここで私が書いた唯一の方法のための私のコードです:私は "未定義のメソッド 'new'のために...(毎回変わる数)"
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
私は痛いほど混乱しています。特に、「未定義のメソッドnew(乱数)」ごとに異なる乱数が与えられています。
ブロックをラムダにバストしておくと、それに従うのが簡単になるかもしれません。その場合、 'lines.map(&into_pieces).reject(&those_i_dont_want).each_with_object({}、add_to_hash)'などのことができます。 –
[私のラインを断片にカット!](https://youtu.be/j0lSpNtjPM8)[申し訳ありませんが、抵抗できなかった: - D] –