SmallTalk-使用转录本打印OrderedCollection对象的内容

SmallTalk-使用转录本打印OrderedCollection对象的内容,smalltalk,pharo,Smalltalk,Pharo,在Pharo中运行以下代码时,我收到了以下消息: 消息未理解:OrderedCollection>>转录本 当用“oc”替换“self”时,我仍然得到相同的错误。我正在寻找一种方法来输出收集使用成绩单 为什么成绩单不能接收我的代码?记住对象消息:参数语法:您试图将成绩单消息发送到oc对象,然后使用self参数将show:消息发送到该对象返回的对象 您真正想做的是让转录本对象显示:您的oc对象。这样做:发送Transcriptshow:消息,并将oc作为参数:Transcript show:oc。

在Pharo中运行以下代码时,我收到了以下消息:

消息未理解:OrderedCollection>>转录本

当用“oc”替换“self”时,我仍然得到相同的错误。我正在寻找一种方法来输出收集使用成绩单


为什么成绩单不能接收我的代码?

记住
对象消息:参数
语法:您试图将
成绩单
消息发送到
oc
对象,然后使用
self
参数将
show:
消息发送到该对象返回的对象

您真正想做的是让
转录本
对象显示:您的
oc
对象。这样做:发送
Transcript
show:消息,并将
oc
作为参数:
Transcript show:oc
。这将显示集合的字符串表示形式

如果要打印集合的每个成员(而不是打印集合本身),则应使用
do:
方法对其进行迭代:
oc do:[:element | Transcript show:element]
。在这里,您可以打印集合的每个成员字符串表示形式

|oc|
oc := OrderedCollection new. 
oc add: 2.
oc add: #(4 9).
oc Transcript show: self; cr.
给出此输出:

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 ].

记住
objectmessage:parameter
语法:您试图将
Transcript
消息发送到
oc
对象,然后使用
self
参数将
show:
消息发送到该对象返回的对象

您真正想做的是让
转录本
对象显示:您的
oc
对象。这样做:发送
Transcript
show:消息,并将
oc
作为参数:
Transcript show:oc
。这将显示集合的字符串表示形式

如果要打印集合的每个成员(而不是打印集合本身),则应使用
do:
方法对其进行迭代:
oc do:[:element | Transcript show:element]
。在这里,您可以打印集合的每个成员字符串表示形式

|oc|
oc := OrderedCollection new. 
oc add: 2.
oc add: #(4 9).
oc Transcript show: self; cr.
给出此输出:

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 ].
此外:

此外:

略短一些:

oc do: [ :each | Transcript show: each; cr ]
略短一些:

oc do: [ :each | Transcript show: each; cr ]

“一个班级的实例”?@SeanDeNigris:我真丢脸。所以
Transcript
不是一个类?当你运行headful时,它是ThreadSafeTranscript的一个实例,当你运行headless时,它是非交互式Transcript的一个实例。“类的一个实例”?@seandeigris:O真丢脸。所以
Transcript
不是一个类?当您运行headful时,它是ThreadSafeTranscript的一个实例,当您运行headless时,它是非交互式Transcript的一个实例。不要忘记打印集合和打印集合的每个元素之间有区别。确实,您是对的。我只是假设他想打印内容,否则你只需命令+p整个集合就可以了。别忘了打印集合和打印集合中的每个元素之间有区别。事实上,你是对的。我只是假设他想打印内容,否则你可以命令+p整个集合,你就完成了。