これは配列から異なる動作変更されたオブジェクトをノーオペレーションのセットから削除しますか?
require "set"
s = [[1, 2], [3, 4]].to_set # s = {[1, 2], [3, 4]}
m = s.max_by {|a| a[0]} # m = [3, 4]
m[0] = 9 # m = [9, 4], s = {[1, 2], [9, 4]}
s.delete(m) # s = {[1, 2], [9, 4]} ?????
以下の例を参照してください。 (.to_set
を削除した場合は、s = [[1, 2]]
となります)これはバグですか?