2017-10-11 9 views
0

「nilを暗黙的にStringに変換しない」というエラーが表示されます。私はエラーを見つけることができません。nilをString-rubyに暗黙的に変換しない

ここで私に迷惑をかけている行があります。

def sumprogram 
    softd = IO.readlines("softdrinks.txt").map! {|s| s.to_i} 
    beers = IO.readlines("beers.txt").map! {|s| s.to_i} 
    drink = IO.readlines("drinks.txt").map! {|s| s.to_i} 
    softdrinks = puts softd.sum 
    beers = puts beers.sum 
    drink = puts drink.sum 
    puts "\n\nBeverages consumed thus far " 
    puts " " + softdrinks + "\t - \t " + beers + "\t - " + drink + "." 
end 

これは問題の最後の前の最後の行です。表示しようとしている表は、異なる配列の個体合計です。

+0

ので、呼び出しは 'nil'を返しputs''に 'softdrinks'、' beers'、と 'drink'への割り当てで' puts'を削除します。 –

+0

私はばかだ...それは今働く。どうもありがとうございます。私は数時間の間、stackoverflowをブラウズしてきましたが、私が見てきたすべてのスレッドは私が理解するために複雑になっています。しかし、ええ、再度ありがとう –

+0

あなたはちょうど学んでいる馬鹿ではありません。時間がたつと事態が起こり、この種のエラーは頻繁に起こりません。 – Cyzanfar

答えて

0

puts戻っnilはそうここにあなたのコードでは、ローカル変数にnilsofdrinksbeersdrinkを割り当てています。ここで

は、あなたが何をする必要があるかです:

def sumprogram 
     softd = IO.readlines("softdrinks.txt").map! {|s| s.to_i} 
     beers = IO.readlines("beers.txt").map! {|s| s.to_i} 
     drink = IO.readlines("drinks.txt").map! {|s| s.to_i} 
     softdrinks = softd.sum 
     beers = beers.sum 
     drink = drink.sum 
     puts "\n\nBeverages consumed thus far " 
     puts " " + softdrinks + "\t - \t " + beers + "\t - " + drink + "." 
end 
関連する問題