我可以通过索引引用红宝石参数吗?

时间:2018-08-12 14:26:44

标签: ruby closures

可以迅速省略闭包中的参数列表,并使用其索引($0, $1, $2...)引用每个参数

Ruby是否可以使用相同的方法? 它将使一些代码更易于阅读

# current syntax
myArray.map { | item | item * 2 } 

# as it could be
myArray.map { $0 * 2 }

1 个答案:

答案 0 :(得分:3)

否。

您可以将它们作为数组访问,但这并不是一回事:

my_array.map { |*_| _[0] * 2 }

Ruby在这些方面提供的唯一选项是&:语法,您可以将其用于在第一个参数上调用方法的特殊情况:

my_array.map(&:succ)

# is equivalent to:

my_array.map { |item| item.succ }