|oc|
oc := OrderedCollection new.
oc add: 2.
oc add: #(4 9).
oc Transcript show: self; cr.
在Pharo中运行以下代码后,我收到消息:
MessageNotUnderstood:OrderedCollection>>转录
用'oc'替换'self'时,我仍然遇到同样的错误。我正在寻找一种使用Transcript输出集合的方法。
为什么Transcript不能成为我代码的接收者?
答案 0 :(得分:2)
请记住object message: parameter
语法:您尝试将Transcript
消息发送到oc
对象,然后将show:
消息发送到该对象返回的对象,使用self
参数。
您真正想要做的是询问Transcript
对象show:
您的oc
对象。因此,请执行此操作:将Transcript
消息show:
与oc
作为参数发送Transcript show: oc
:do:
。这将显示集合的字符串表示。
如果您要打印集合的每个成员(而不是打印集合本身),您应该使用oc do: [ :element | Transcript show: element ]
方法迭代它们:oc := OrderedCollection new.
oc add: 2.
oc add: #(4 9).
Transcript show: 'Show the collection:'; cr.
Transcript show: oc; cr.
Transcript show: 'Show each element:'; cr.
oc do: [ :element | Transcript show: element; cr ].
。在这里打印每个集合的成员字符串表示。
Show the collection:
an OrderedCollection(2 #(4 9))
Show each element:
2
#(4 9)
给出这个输出:
{{1}}
答案 1 :(得分:1)
此外:
oc do: [ :each | Transcript show: each; cr ]
答案 2 :(得分:0)
有点短:
oc do: [:each | each logCr ]