如何在Smalltalk中创建2D数组

伯科

我遵循了这个先前的主题如何在Smalltalk中管理2D数组?但这并没有帮助我,请帮助我。

我正在尝试创建NXN数组,然后将它们打印出来。例如2x2数组:我缺少什么?

|testArr|.

testArr := (Array new: 2)
at: 1 put: ((Array new: 2) at: 1 put: '0'; at: 2 put: 'X');
at: 2 put: ((Array new: 2) at: 1 put: 'P'; at: 2 put: 'Y').

1 to:2 do:[:a|

1 to:2 do:[:b|

Transcript show: testArr at:a at:b.
].
].

错误发生在使用unknow选择器的脚本中。我该怎么解决?

马丁·W

您的代码有几个问题:

首先,您描述的错误消息。我猜全长说:

MessageNotUndertood:ThreadSafeTranscript >> show:at:at:

因此,这意味着您应设置一些括号以将正确的消息发送到正确的对象。尝试:

Transcript show: ((testArr at:a) at:b).

现在,您的数组分配也出现了问题。

在Smalltalk / Pharo / Squeak中,如果发送at:put:到数组,它将返回您分配的对象,即的第二个参数at:put:,而不是接收者。因此,在您的示例中,变量testArr不包含数组数组,而是字符串'Y'。

如果您确实要使用消息级联;,则必须yourself在级联末尾消息发送到阵列。

像这样:

testArr := (Array new: 2).
testArr at: 1 put: ((Array new: 2) at: 1 put: '0'; at: 2 put: 'X'; yourself).
testArr at: 2 put: ((Array new: 2) at: 1 put: 'P'; at: 2 put: 'Y'; yourself).

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Smalltalk中访问2D数组中的元素

来自分类Dev

如何在Java中创建由2d int数组组成的2d数组?

来自分类Dev

如何在C ++中创建int 2D数组的向量

来自分类Dev

如何在Matlab中的'for'循环内创建2D数组

来自分类Dev

我需要澄清如何在Ruby中创建2D数组?

来自分类Dev

如何在python多处理中创建共享的2D数组

来自分类Dev

如何在Unity 2D中创建白色矩形?

来自分类Dev

如何在Swift中过滤2D数组?

来自分类Dev

如何在PHP中重置2d数组键?

来自分类Dev

如何在2D字符数组中搜索字符?

来自分类Dev

如何在Java中操作2D数组?

来自分类Dev

如何在php中制作2d键数组?

来自分类Dev

如何在C中填充2D结构数组?

来自分类Dev

如何在Numpy中更改2D数组元素?

来自分类Dev

如何在2D数组中编写此图案?

来自分类Dev

如何在C中打印2D数组

来自分类Dev

如何在php中制作2d键数组?

来自分类Dev

如何在Java中操作2D数组?

来自分类Dev

如何在ArrayList中存储2D Integer数组?

来自分类Dev

如何在1D数组上使用函数创建2D Numpy数组?

来自分类Dev

如何创建2D数组的ArrayList

来自分类Dev

如何动态创建2D数组?

来自分类Dev

如何在Smalltalk中创建类的实例?

来自分类Dev

如何在Smalltalk中创建类的实例?

来自分类Dev

如何在C#中为按钮的动态2D数组创建单击事件处理程序

来自分类Dev

如何在熊猫2D数据框中复制Numpy 2D数组

来自分类Dev

如何通过在MATLAB中控制2D数组的列来创建3D数组?

来自分类Dev

Smalltalk如何用随机数填充2d数组?

来自分类Dev

如何在3D Numpy数组中查找2D数组的行