我可以在另一个方法中访问一个方法吗?

时间:2014-11-08 02:14:16

标签: ruby methods arguments private argument-passing

我可以在另一个方法中访问方法

 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)

2 个答案:

答案 0 :(得分:0)

您得到的错误不是因为您无法使用其他方法。这是因为你传递的参数与方法所期望的参数不匹配。

具体来说,方法two需要一个参数,而使用two()将其传递给零。

将其更改为:

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

答案 1 :(得分:-1)

您无需在驱动程序代码中调用这两种方法。对b使用实例变量,只需调用一个函数。如果您愿意更改&#34; print&#34; for&#34; return&#34;在方法内部。