4
假設你有如下:併發修改,同時穿越紅寶石哈希
def wipeProduct(hash, nameToDelete)
hash.each do |i|
key = i[0]
productName = i[1].first
hash.delete(key) if productName==nameToDelete
end
end
我不知道它是安全的,而你遍歷哈希的鍵值對從散列中刪除的東西。我檢查了RI文檔,但是我沒有看到有關哈希上的併發修改的任何內容。
我知道,你也可以重寫此
def wipeProduct(hash, nameToDelete)
keysToDelete = []
hash.each do |i|
key = i[0]
productName = i[1].first
keysToDelete << key if productName==nameToDelete
end
keysToDelete.each {|key| hash.delete(key) }
end
甚至:
def wipeProduct(hash, nameToDelete)
hash.reject!{|key,value| nameToDelete==value.first}
end
,但我想知道的,如圖中的第一個例子上面是一個問題,如果併發的修改? (它似乎不是當我運行代碼時)
問題:有人知道什麼位置併發修改與哈希? (...和其他集合?) - 如果你願意的話,我一定會喜歡任何資源鏈接。