Matrix Squeak:创建具有指定行和列的矩阵
我只是想在Squeak(Smalltalk)中做一个赋值,但我不知道如何创建具有特定行数和列数的矩阵Matrix Squeak:创建具有指定行和列的矩阵,matrix,smalltalk,squeak,Matrix,Smalltalk,Squeak,我只是想在Squeak(Smalltalk)中做一个赋值,但我不知道如何创建具有特定行数和列数的矩阵 我知道可以创建一个3x3矩阵,比如a:=matrix new:3.,但我需要一个3x2矩阵。系统浏览器对我理解如何做到这一点没有多大帮助,而且我已经在互联网上搜索了一段时间,没有找到多少有用的东西。有谁能给出一行代码示例,说明如何创建3x2矩阵之类的东西吗?我现在有了解决方案,供任何想知道如何实现这一点的人使用。它是 var:=矩阵行:A列:B。创建矩阵(A x B),其中A和B是整数。您应该了
我知道可以创建一个3x3矩阵,比如
a:=matrix new:3.
,但我需要一个3x2矩阵。系统浏览器对我理解如何做到这一点没有多大帮助,而且我已经在互联网上搜索了一段时间,没有找到多少有用的东西。有谁能给出一行代码示例,说明如何创建3x2矩阵之类的东西吗?我现在有了解决方案,供任何想知道如何实现这一点的人使用。它是
var:=矩阵行:A列:B。
创建矩阵(A x B),其中A和B是整数。您应该了解Smalltalk如何处理构造函数-始终检查类
如果您检查矩阵类
,您将发现#new:
在内部使用^self rows:dimension columns:dimension
。这意味着您的:
aMatrix:=矩阵新:3
事实上
aMatrix:=矩阵行:3列:3
,这恰好是您要搜索的内容
在我看来,#new:
消息不是一个好选择。我想要一个#squareSize:
或类似的东西
注意:不要用大写字母表示变量(根据您的A:=
assignment进行注释)
编辑:为什么不使用大写字母作为局部/实例变量
开头的大写字母是为全局变量保留的。例如,类名也是全局的,这就是为什么你有矩阵,而没有矩阵。例如类实例,您将previx与a
或an
一起使用,就像我使用的aMatrix
是类Matrix
的实例一样
不同的Smalltalk口味之间可能存在细微差异。例如,在Smalltalk/X中,类变量以大写字母开头,据我所知,GNU Smalltalk中的情况并非如此。感谢您的回答,非常有用!关于变量的大写字母,我必须,这是作业的一部分,我必须有特定的变量名。但你为什么说我不应该用大写字母来表示变量呢?@Bionic_Beadle,不客气:)。我做了一个编辑来回答你在评论中的问题。请下次尝试创建一个单独的问题,因为当有人搜索它时更容易找到。