ram*_*ion 25
使用splat运算符 *
def foo(a,b,c,*others)
# this function has at least three arguments,
# but might have more
puts a
puts b
puts c
puts others.join(',')
end
foo(1,2,3,4,5,6,7,8,9)
# prints:
# 1
# 2
# 3
# 4,5,6,7,8,9
Run Code Online (Sandbox Code Playgroud)
(如果我可以对接受的答案添加评论,我会,但我没有足够的分数.)
警告:对于处理常规数据的方法,请注意这样做.这是一个伟大的一块语法糖,但有限制的参数个数,你可以传递给方法你会得到一个SystemStackError之前.我已经达到了这个极限redis.mapped_mget *keys
.此外,限制将根据您使用splat运算符的位置而更改.例如,在本地运行pry,我可以将超过130,000个元素的数组打包到方法中.但是,在赛璐珞演员中运行,该限制可能少于16,000个元素.
归档时间: |
|
查看次数: |
12669 次 |
最近记录: |