Pharo中如何将OrderedCollection输出为数组字面量#(...)格式?
解决方案
直接使用storeOn:方法替代print:,它会生成可被Smalltalk解析的数组字面量格式:
object := String streamContents: [:stream| stream nextPutAll: 'data := '; store: data asArray]
执行这段代码后,你会得到期望的输出:
data := #('3c7lwmdva2b8jbt39ls4pz3sl' '3c7lwmbf36tamw1m45riirdze' 8 February 1994).
原因说明
print:方法的作用是生成人类可读的字符串表示,所以会包含an Array这类描述性前缀,不符合需求。storeOn:方法的设计目的是生成可被Smalltalk系统重新读取执行的表达式,它会直接输出数组的字面量形式(带#前缀的格式),完全匹配你想要的结果。
另外,你原代码中的cr会导致换行,若不需要换行可直接移除,上述示例已去掉该换行操作。
内容的提问来源于stack exchange,提问作者Mansour Faouziel
相关产品推荐
相关产品推荐

