您可能熟悉以下 Ruby 简写(a
是一个数组) :
a.map(&:method)
例如,尝试在 irb 中执行以下操作:
>> a=[:a, 'a', 1, 1.0]
=> [:a, "a", 1, 1.0]
>> a.map(&:class)
=> [Symbol, String, Fixnum, Float]
语法 a.map(&:class)
是 a.map {|x| x.class}
的简写。
阅读更多关于“ Map (& : name)在 Ruby 中是什么意思?”语法的内容。
通过语法 &:class
,为每个数组元素创建一个方法调用 class
。
我的问题是: 你能为方法调用提供参数吗? 如果可以,怎么提供?
例如,如何转换以下语法
a = [1,3,5,7,9]
a.map {|x| x + 2}
&:
语法?
我并不是说 &:
语法更好。
我只对在参数中使用 &:
语法的机制感兴趣。
我假设您知道 +
是 Integer 类上的一个方法:
>> a=1
=> 1
>> a+(1)
=> 2
>> a.send(:+, 1)
=> 2