为 splat 参数设置默认值会导致错误:
1.9.3-p374 :001 > def a b, *c = nil
1.9.3-p374 :002?> end
SyntaxError: (irb):1: syntax error, unexpected '=', expecting ';' or '\n'
def a b, *c = nil
^
from /Users/me/.rvm/rubies/ruby-1.9.3-p374/bin/irb:16:in `<main>'
我尝试过的一些变体也不起作用:
1.9.3-p374 :003 > def a b, *c = []
1.9.3-p374 :005 > def a b, (*c) = nil
1.9.3-p374 :007 > def a b, (*c = [])
1.9.3-p374 :009 > def a b, (*c = [1,2,3])
1.9.3-p374 :011 > def a b, *c = [1,2,3]
我在这里没有看到不确定性问题,所以看起来应该是可能的。