如何获取调用函数传递的参数个数啊?
定义了一个函数,需要2个参数,如
def my(arg1,arg2)
...
end
,那么怎么判断调用函数传递的参数有几个?
也就是要下面的效果:
def my(arg1,arg2)
if 参数个数 == 0
...
elsif 参数个数 == 1
...
else
...
end 这个函数怎么看不懂呢? 不是吧?
我承认我是菜鸟,不过,这个函数难道有问题?
def my(arg1,arg2)
if 参数个数 == 0
...
elsif 参数个数 == 1
...
else
...
end
我的意思就是说,当调用者给的参数个数为0个时(即:my())如何如何,当参数个数为1个时(即:my(xxx))如何如何,否则如何如何,难道这样不可以? 可变参数用
def my *args
if args.size == 0 可用Method#arity来取得方法的参数个数
举例:def x(a,b,c)
p method(:x).arity
end
x(1,2,3) 谢谢,貌似没法解决我的问题,还是谢谢了 恩 arity 只能取得方法的参数个数,但是不能取得动态传递的参数个数。
zhlong8 说的可变参数 是正确的解决方案。 讨论得很热烈呢。 def x(*)
p "this is a test!"
end
x(1,2,3,4,5,6,7,8)
这样的如何测试他的参数呢?
回复 5# bugbugbug3
def x(*)
p "this is a test!"
end
x(1,2,3,4,5,6,7, 8 )
这样的如何测试他的参数呢?
页:
[1]
2