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)
#没有输出
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短