2014-11-08 120 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

相关问题