こんにちは、私は学んでおり、smalltalk は初めてで、SortedCollection を画面に出力して keysAndValueDo を使用しようとしていますが、どのように行われたかわかりません。
2 に答える
4
次の例は Pharo Smalltalk で動作しますが、他の Smalltalk 実装も同様に動作する可能性があります。
まず、例として既存の印刷方法を見てみましょう。の場合、そのスーパークラスのプロトコルで
SortedCollection
それらを見つけます。printing
Collection
要素の印刷は で定義されていることがわかります
printElementsOn:
。したがって、このメソッドを で上書きできますSortedCollection
。
あなたが求めていたように、これは を使用するprintElementsOn:
方法です:keysAndValuesDo:
printElementsOn: aStream
aStream nextPut: $(.
self keysAndValuesDo: [:key :value |
aStream
nextPut: $(;
print: key;
nextPut: $:;
space;
print: value;
nextPut: $)].
aStream nextPut: $)
以前に印刷されたコレクション:
"SortedCollection(1 2 3 3 5 10)"
印刷されます:
「a SortedCollection((1:1)(2:2)(3:3)(4:3)(5:5)(6:10))」
于 2015-11-15T10:39:58.077 に答える