1
所以,我有一個對象的列表,我想更新匹配一些條件的項目,並插入一個對象,如果沒有匹配。我提出的代碼看起來並不高雅,它像這樣:一個優雅的方式來插入列表
def upsert(type, text)
messages.each do |message|
if message.type == type
message.text = text
end
end
unless messages.any?{|message| message.type == type}
messages.insert(Message.new(type, text))
end
end
號,類型不唯一標識的元素,因而多個項目可以更新 – synapse
在這種情況下,你需要一個更簡潔的方法。您仍然可以使用散列和隨機訪問列表。底線保持不變:取決於列表的類型。看到我更新的答案。 – Nivas