我不会在这里重复我的问题,但是有更有效的方式来写这个吗?
def recruits_names
names = []
for r in self.referrals do
names << r.display_name
end
return names
end
Run Code Online (Sandbox Code Playgroud)
Mic*_*ley 53
使用map方法:
为枚举中的每个元素返回一个新数组,其中包含一次运行块的结果.
def recruits_names
self.referrals.map { |r| r.display_name }
end
Run Code Online (Sandbox Code Playgroud)
[更新]正如Staelen在评论中指出的那样,这个例子可以进一步缩短到:
def recruits_names
self.referrals.map(&:display_name)
end
Run Code Online (Sandbox Code Playgroud)
对于好奇,这是因为对它后面的对象的&调用to_proc(当在方法调用中使用时),并且Symbol实现to_proc返回一个Proc执行由每个值产生的符号所指示的方法(参见文档).
| 归档时间: |
|
| 查看次数: |
28311 次 |
| 最近记录: |