Demo (Ich gehe davon aus [3]
führen):Wie mache ich vernünftige "Set-Differenz" in Ruby?
[1,2] - [1,2,3] => [] # Hmm
[1,2,3] - [1,2] => [3] # I see
a = [1,2].to_set => #<Set: {1, 2}>
b = [1,2,3].to_set => #<Set: {1, 2, 3}>
a - b => #<Set: {}> WTF!
Und:
[1,2,9] - [1,2,3] => [9] # Hmm. Would like [[9],[3]]
Wie soll man einen echten Satz Differenz unabhängig von der Reihenfolge der Eingänge erfüllen?
Ps. Nebenbei, ich muss dies für zwei 2000-Element-Arrays tun. Normalerweise wird Array # 1 weniger Elemente als Array # 2 haben, dies ist jedoch nicht garantiert.
+1, nette Antwort. Ich habe Array #^zu meiner [Erweiterungsbibliothek] hinzugefügt (http://rubydoc.info/gems/shenanigans/1.0.4/Array#%5E-instance_method), es ist nicht immer notwendig, Sätze zu durchlaufen. –