gpt4 book ai didi

ruby - map(& :name) mean in Ruby? 是什么意思

转载 作者:数据小太阳 更新时间:2023-10-29 06:16:09 24 4
gpt4 key购买 nike

我在 a RailsCast 中找到了这段代码:

def tag_names
@tag_names || tags.map(&:name).join(' ')
end

map(&:name) 中的(&:name) 是什么意思?

最佳答案

它是tags.map(&:name.to_proc).join(' ')的简写

如果 foo 是一个带有 to_proc 方法的对象,那么你可以将它作为 &foo 传递给一个方法,它将调用 >foo.to_proc 并将其用作方法 block 。

Symbol#to_proc 方法最初由 ActiveSupport 添加,但已集成到 Ruby 1.8.7 中。这是它的实现:

class Symbol
def to_proc
Proc.new do |obj, *args|
obj.send self, *args
end
end
end

关于ruby - map(& :name) mean in Ruby? 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com