首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >你能为Ruby中的map(&:method)语法提供参数吗?

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

Stack Overflow用户
提问于 2014-05-16 21:01:31
回答 8查看 44.4K关注 0票数 129

你可能对下面的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}的简写形式。

在"What does map(&:name) mean in Ruby?“中阅读有关此语法的更多信息。

通过语法&:class,您可以为每个数组元素调用class方法。

我的问题是:你能为方法调用提供参数吗?如果是这样,又是如何做到的呢?

例如,如何转换以下语法

a = [1,3,5,7,9]
a.map {|x| x + 2}

&:语法吗?

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

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

>> a=1
=> 1
>> a+(1)
=> 2
>> a.send(:+, 1)
=> 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23695653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档