2014-11-08 81 views
0

我可以訪問方法中的另一種方法我可以訪問另一種方法內的方法嗎?

def one(a) 
    if a < 10 
     two() 
    else 
     print "ITs passed in first function ONE" 
    end 
end 

def two(b) 
    if b < 10 
     print "Both function failed" 
    else 
     print "ITs passed in second function TWO" 
    end 
end 

puts one(5) 
puts two(15) 

如果我運行這個程序,我得到一個錯誤

test4.rb:9:in `two': wrong number of arguments (0 for 1) (ArgumentError) 
+0

請仔細閱讀錯誤消息。 – 2014-11-08 02:15:17

+0

at'two()' - 'two'想要一個參數 – August 2014-11-08 02:18:10

+0

是的,我不明白,你能請elobarate? – user2996524 2014-11-08 02:21:26

回答

0

你得到的錯誤是不是因爲你不能用其他的方法。這是因爲你傳遞的參數與方法期望的參數不匹配。

具體來說,方法two需要一個參數,而您將其傳遞爲零,而two()

將其更改爲:

def one(a) 
    if a < 10 
     two(a) #<--here 
    else 
#... 
+0

這是正確的,但我不想用兩個(​​一)那裏我想採取兩個()下一個功能與一些其他argument.i嘗試兩(b)但它引發test4.rb:5:在'一個':未定義的局部變量或方法'B'爲主:對象(NameError) – user2996524 2014-11-08 02:32:03

+0

我想這個把兩個(15)在兩個() – user2996524 2014-11-08 02:32:51

+0

只要記住'two'需要一個參數,通過任何你需要的。 – 2014-11-08 03:22:12

-1

你不需要調用在驅動程序代碼兩種方法。使用b的實例變量,只需調用一個函數。如果您希望更改方法內「返回」的「打印」。

+0

這不是試圖回答這個問題。請評論系統改爲提出一條建議。歡迎來到Stackoverflow。 – 2017-01-12 03:28:06

相關問題