相关疑难解决方法(0)

你能在Ruby中提供map(&:method)语法的参数吗?

您可能熟悉以下Ruby简写(a是一个数组):

a.map(&:method)
Run Code Online (Sandbox Code Playgroud)

例如,在irb中尝试以下操作:

>> a=[:a, 'a', 1, 1.0]
=> [:a, "a", 1, 1.0]
>> a.map(&:class)
=> [Symbol, String, Fixnum, Float]
Run Code Online (Sandbox Code Playgroud)

语法a.map(&:class)是一种简写a.map {|x| x.class}.

阅读" Ruby中的map(&:name)是什么意思? "中有关此语法的更多信息.

通过语法&:class,您class将为每个数组元素进行方法调用.

我的问题是:你能为方法调用提供参数吗?如果是这样,怎么样?

例如,如何转换以下语法

a = [1,3,5,7,9]
a.map {|x| x + 2}
Run Code Online (Sandbox Code Playgroud)

&:语法?

我并不是说&:语法更好.我只是对使用&:带参数的语法的机制感兴趣.

我假设你知道这+是Integer类的一个方法.您可以在irb中尝试以下操作:

>> a=1
=> 1
>> a+(1)
=> 2
>> a.send(:+, 1)
=> 2
Run Code Online (Sandbox Code Playgroud)

ruby

110
推荐指数
7
解决办法
3万
查看次数

如何将参数传递给array.map快捷方式?

给出以下数组a:

a = [1, 2, 3, 4, 5]  
Run Code Online (Sandbox Code Playgroud)

我该怎么办:

a.map { |num| num + 1 }  
Run Code Online (Sandbox Code Playgroud)

使用简短表示法:

a.map(&:+ 1)  
Run Code Online (Sandbox Code Playgroud)

要么:

a.map(&:+ 2)  
Run Code Online (Sandbox Code Playgroud)

其中1和2是参数?

ruby

41
推荐指数
3
解决办法
2万
查看次数

标签 统计

ruby ×2