我有一個例如類結果,我想加入的結果名稱,而不是用「」象下面這樣的結果:可能在Ruby中擴展Array的方法?
@results=[result1, result2...]
results.join(", ") do |r|
r.name
end
results.join方法應該是陣列的extensino方法,我想提供給我的程序中所有的數組。
可能嗎?
我有一個例如類結果,我想加入的結果名稱,而不是用「」象下面這樣的結果:可能在Ruby中擴展Array的方法?
@results=[result1, result2...]
results.join(", ") do |r|
r.name
end
results.join方法應該是陣列的extensino方法,我想提供給我的程序中所有的數組。
可能嗎?
是的,這是可能的。
class Array
def join_names
collect(&:name).join(", ")
end
end
但是,這使得您的代碼更有可能與其他庫中的方法向Array類添加方法時發生命名空間衝突。
'#join'已經是*數組方法了......你究竟在問什麼? –
爲什麼它應該適用於所有數組,如果它只適用於響應「名稱」的對象數組?此外,您可以收集或映射並獲得相同的效果,而不會污染具有消息特定功能的通用類。是的,這是可能的。 –
是的,連接已經是一個數組的方法,我想要的是可以阻塞的連接。像def加入(delim){array.map {| x | yield(x)} .join(delim)} – aaron