2017-10-11 75 views
0

我得到錯誤「沒有將nil隱式轉換爲字符串」。我只是找不到錯誤。沒有將nil隱式轉換爲字符串 - 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

在分配到'softdrinks','beers'刪除'puts'和'drink'因爲調用'puts'返回'nil' 。 –

+0

我是一個白癡......它現在起作用了。非常感謝。我一直在瀏覽stackoverflow幾個小時,但是我看到的每個線程都讓我感到複雜。但是,是的,再次感謝 –

+0

你不是一個白癡,你只是在學習。隨着時間的推移,事情會變得有意義,這些類型的錯誤很少會發生。 – Cyzanfar

回答

0

puts回報nil所以在你的代碼在這裏您要分配nil局部變量sofdrinksbeersdrink

以下是你需要做的:

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 
相關問題