排队
p *1..10
做的事情和
(1..10).each { |x| puts x }
这将为您提供以下输出:
$ ruby -e "p *1..10"
1
2
3
4
5
6
7
8
9
10
例如,在使用textmate时,这是一个很好的快捷方式,但星号的作用是什么?这是怎么回事?在网上找不到任何东西...
排队
p *1..10
做的事情和
(1..10).each { |x| puts x }
这将为您提供以下输出:
$ ruby -e "p *1..10"
1
2
3
4
5
6
7
8
9
10
例如,在使用textmate时,这是一个很好的快捷方式,但星号的作用是什么?这是怎么回事?在网上找不到任何东西...
这是splat operator.您经常会看到它用于将数组拆分为函数的参数.
def my_function(param1, param2, param3)
param1 + param2 + param3
end
my_values = [2, 3, 5]
my_function(*my_values) # returns 10
更常见的是,它用于接受任意数量的参数
def my_other_function(to_add, *other_args)
other_args.map { |arg| arg + to_add }
end
my_other_function(1, 6, 7, 8) # returns [7, 8, 9]
它也适用于多个赋值(尽管这两个语句在没有splat的情况下都可以使用):
first, second, third = *my_values
*my_new_array = 7, 11, 13
以你的例子来说,这两者是等价的:
p *1..10
p 1, 2, 3, 4, 5, 6, 7, 8, 9, 10