2012-08-01 149 views
1

我第一次嘗試返回函數。以下幾行代碼顯示沒有輸出。我想弄清楚我的代碼有什麼問題。我會很感激你的意見。從紅寶石新手返回命令

def favourite_drink name 
    if name == "tea" 
    return "I love tea too!" 
    end 

    if name == "lemonade" 
    return "Stuff's refreshing, isn't it?" 
    end 

    if name == "coffee" 
    return "Dude, don't have too much of that stuff!" 
    end 

    "So what exactly is it that you like? (scratches head)" 
end 

favourite_drink "tea" 
+0

下次請看看可用的格式選項,特別是代碼按鈕('{}')。它有助於使您的代碼更具可讀性:D – Nanne 2012-08-01 06:50:35

回答

1

到目前爲止我不是Ruby wizz,但我認爲你錯過了一段代碼,它實際上會爲你做輸出。你有一些字符串,但他們仍然只是:字符串。要真正將它們發送到屏幕,您需要一個像putsprint這樣的命令。

看到:http://en.wikibooks.org/wiki/Ruby_Programming/Strings

puts 'Hello world' 
2

,因爲你不輸出的函數的結果有沒有輸出。

puts favourite_drink("tea") 

輸出:

"I love tea too!" 

你可能已經用Ruby嘗試在irb,這是一個REPL - 讀-EVAL-打印循環。在內部評級法,如果你輸入驗證碼,你會看到:

=> "I love tea too!" 

因爲irb你會自動顯示任何你輸入的值。在實際運行程序時,您需要特別要求輸出任何您想要打印的內容。

+0

如果您一直在控制檯/ irb中工作,它會自動打印您輸入的表達式的值,這會造成混淆。 – benzado 2012-08-01 06:56:21

+1

@benzado我有同樣的想法 - 在你評論的同時我正在闡述我的答案。 :) – 2012-08-01 06:59:34

1

以你的方法爲目標,爲了展示字符串「我也愛喝茶!」到輸出屏幕(您的終端),您需要爲您的方法提供準確的說明。也就是說,你需要指示你的方法「favourite_drink」根據方法裏面所描述的結構採取論證「茶」和發青與它的favourite_drink「

放favourite_drink「茶」

上述將解決您的問題。

+0

或者像Nanne所說的那樣簡潔 – 2012-08-01 10:02:09