我得到的简单问题
|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 ].
我也尝试了流,它返回给我这个“有序集合('ab''efghij''lmnopqrst')”
我所需要的只是一个具有
'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 ]
并且aStringsList将是通过调用in 每个's 成员返回Array的s 中的一个。String#asStringaList
如果您想将所有这些连接在一个单一的String,您可以使用#inject:into:集合的方法,而不是#collect::
aList inject: '' into: [ :text :each | text , each asString , ' ' ]
如果你打印出来,你会得到'ab efghij lmnopqrst '你想要的:)