ruby将数组转换为函数参数

use*_*991 90 ruby arrays arguments function

说我有一个阵列.我希望将数组传递给函数.但是,该函数需要两个参数.有没有办法将数组转换为2个参数?例如:

a = [0,1,2,3,4]
b = [2,3]
a.slice(b)
Run Code Online (Sandbox Code Playgroud)

会在Ruby中产生错误.我需要输入a.slice(b[0],b[1])我正在寻找更优雅的东西,如a.slice(foo.bar(b)) 谢谢.

Ser*_*sev 92

用这个

a.slice(*b)
Run Code Online (Sandbox Code Playgroud)

它被称为splat运算符


Joh*_*web 86

您可以Array使用*(或"splat")运算符将变量转换为参数列表:

a = [0, 1, 2, 3, 4] # => [0, 1, 2, 3, 4]
b = [2, 3] # => [2, 3]
a.slice(*b) # => [2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

参考: