gpt4 book ai didi

ruby - 将对象数组中的属性映射到另一个数组的更有效的 Ruby 方法?

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

我不会在这里重复我的问题,但是有没有更有效的方式来写这个?

  def recruits_names
names = []
for r in self.referrals do
names << r.display_name
end

return names
end

最佳答案

使用 map方法:

Returns a new array with the results of running block once for every element in enum.

def recruits_names
self.referrals.map { |r| r.display_name }
end

[更新] 正如 Staelen 在评论中指出的那样,这个例子可以进一步缩短为:

def recruits_names
self.referrals.map(&:display_name)
end

好奇的是,这是因为 & 在它后面的对象上调用了 to_proc(当在方法调用中使用时),并且 Symbol实现 to_proc 以返回一个 Proc,它在每个产生给 block 的值上执行由符号指示的方法(参见 the documentation)。

关于ruby - 将对象数组中的属性映射到另一个数组的更有效的 Ruby 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216275/

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