返回' false' user如果用户没有为函数输入参数?

时间:2017-03-25 03:17:36

标签: ruby

说我有这样的功能:

def f(n)
 z = 0
 sum = 0
      while  z <= n 
      sum = sum + z
      z = z + 1
      end 
 return sum
 end

我如何返回&#34; false&#34;当用户没有输入函数的参数时,即在评估f()?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以在方法中使用动态长度参数,并检查是否只存在一个参数:

 def f(*args)
   if args.length == 1
     n = args.first
     z = 0
     sum = 0
     while  z <= n
       sum = sum + z
       z = z + 1
     end
     return sum
   else
     return false
   end
 end

答案 1 :(得分:0)

您可以设置n的默认值,例如

def f(n = nil)
 return false if n.nil?
 z = 0
 sum = 0
      while  z <= n 
        sum = sum + z
        z = z + 1
      end 
 return