私が受けた簡単な質問
|list string|
list:= #('ab' 'efghij' 'lmnopqrst'). "Ordered collection"
list do:[:each| "string with:each" i know this is not right how do i add items ].
ストリームも試してみましたが、これが返されました
私が必要とするのは、
'abc efghij lmnopqrst '
Pharo でできること
Character space join: list
join: が利用できず、うまく機能する必要がある場合は、ストリームバリアントを使用できます
String streamContents: [:stream|
list
do [:each| stream nextPutAll: each ]
separatedBy: [ stream nextPut: Character space ]
Object
クラスは次のような#asString
メッセージを定義しています:
"Answer a string that represents the receiver."
したがって、次のことができます。
| aList aStringsList |
aList := #('ab' 'efghij' 'lmnopqrst'). "Array"
aStringsList := aList collect: [ :each | each asString ]
andaStringsList
はArray
、の各メンバーでString
の呼び出しによって返される の になります。#asString
aList
それらすべてを 1 つの に連結したい場合は、 の代わりにコレクションString
のメソッドを使用できます。#inject:into:
#collect:
aList inject: '' into: [ :text :each | text , each asString , ' ' ]
あなたがそれを印刷すれば、あなたが望むものを手に入れることができます'ab efghij lmnopqrst '
:)