2017-01-17 1 views

Antwort

3

Verwaltet, um es zu beheben. Verwendet, um einen Schlüsselwert-Speicher (Wörterbuch), wo die Tasten sind Tasten 1, 2, key3 und die Werte sind ein Set (oder Array) von Wert1, Wert2, Wert3 usw.

Etwas entlang der Linie:

keys do: [ :eachKey | (eachKey condition) ifTrue: [ 
    keyValueStorage at: eachKey ifAbsentPut: [ Set new. ] 
    (keyValueStorage at: eachKey) add: value. ] ] . 
+2

Sie können auch '#groupedBy:' verwenden, z '{# Schlüssel1 -> # Wert1. # Schlüssel2 -> # Wert2. # Schlüssel1 -> # Wert3. } groupedBy: # key' –

+1

auch 'at: ifAbsentPut:' nimmt normalerweise einen Block als zweites Argument, also '[Set new]' ... also wird das Set nur bei Bedarf erstellt –

+2

@Peter du brauchst '(.. .gruppedBy: #key) sammeln: [: coll | coll collect: #value] ', oder Sie werden mit einem Wörterbuch enden, in dem Werte Sammlungen von Assoziationen sind – Uko

Verwandte Themen