【发布时间】:2013-11-19 12:40:19
【问题描述】:
我知道在对象上调用public_send 而不是send 是一个好习惯,以免无意中调用私有方法。但是,如果我知道我将调用的方法肯定是公开的,我可以使用 send 吗?我写了这段代码:
[:name, :artist, :album,].each do |attribute|
define_method "#{attribute}s" do
@songs.map { |song| song.public_send(attribute) }.uniq
end
end
如果我在这里用send 替换public_send 会被认为是不好的做法吗?
【问题讨论】:
-
send别名为__send__在网上有很多关于此的信息。 link -
@songs.map(&attribute).uniq呢? -
@Stefan,这确实是更好的版本。 Danke 目录 :)
标签: ruby syntax coding-style