Ruby数组和splat(*)运算符
示例
的*操作者可用于解压缩变量和数组,使得它们可以作为一个独立的参数的方法进行传递。
如果尚未将单个对象包装在Array中,则可以使用它:
def wrap_in_array(value) [*value] end wrap_in_array(1) #> [1] wrap_in_array([1, 2, 3]) #> [1, 2, 3] wrap_in_array(nil) #> []
在上面的示例中,该wrap_in_array方法接受一个参数value。
如果value为Array,则将其元素解压缩,并创建一个包含这些元素的新数组。
如果value是单个对象,则会创建一个包含该单个对象的新数组。
如果value为nil,则返回一个空数组。
splat运算符在某些情况下在方法中用作参数时特别方便。例如,它允许nil,单个值和数组以一致的方式处理:
def list(*values)
values.eachdo |value|
#做有价值的事情
puts value
end
end
list(100)
#> 100
list([100, 200])
#> 100
#> 200
list(nil)
#没有输出
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下