2017-03-02 66 views
-4

我使用隱式返回傳遞參數。在Ruby中通過參數傳遞參數

請指出什麼是錯的,Ruby不會爲隱式返回提供任何反饋錯誤,它只是空白而沒有響應。

def add(a, b) 
    a + b 
end 

def subtract(a, b) 
    a - b 
end 

add(20, 45) 

subtract(80, 10) 

我知道它在終端工作。這是工作這個代碼的唯一方法嗎?我知道使用代碼編輯器強制隱式返回不是nil的使用方法。嘗試使用此方法執行相同的操作。

+0

有什麼問題嗎?該代碼是有效的,方法是正確的和工作。 –

+0

當我通過代碼時,沒有任何反應。謝謝Andrey的代碼thingy。 – Googly

+0

:)只需在終端中運行代碼並查看輸出。如果你把它作爲文件運行,添加'puts add(20,45)'實際輸出結果 –

回答

3

如果您使用的是讀取評估打印環(REPL)像irb然後你會看到你的代碼的輸出作爲您鍵入它。如果你在代碼編輯器是你可能將不會。

下面是如何從代碼得到一些輸出:

def add(a, b) 
    a + b 
end 

def subtract(a, b) 
    a - b 
end 

p add(20, 45) 

p subtract(80, 10) 

任何事情之前把p會給你一個快速inspect(調試)查看到相關對象。通常情況下,Ruby只會在這樣的無效環境中拋棄任何結果,而不是要求它在任何地方保存這些方法調用的結果,也不以任何形式顯示,這就是爲什麼沒有輸出。

我有我的編輯器配置爲按下一個按鈕來運行Ruby代碼,所以也許你也可以選擇這樣做。大多數都以某種形式進行,但可能需要一些配置。

+0

謝謝tadman,它現在完美的工作,現在我會做配置,謝謝堆。我正在使用崇高的編輯器。 – Googly

+0

在Sublime中它是CTRL + B或Command + B來運行你的代碼,如果你有所有的Ruby位插入並正常工作。 – tadman

+0

非常感謝,tadman。 – Googly