吱吱声:使用指定的行和列创建矩阵

问题描述 投票:2回答:2

我只是想在Squeak(Smalltalk)中做一个赋值,我无法弄清楚如何创建一个具有特定行数和列数的矩阵。

我知道可以创建像A := Matrix new:3.这样的3x3矩阵,但我需要类似3x2矩阵的东西。系统浏览器对我对如何做到这一点的理解没什么帮助,我一直在互联网上搜索一段时间,并没有找到任何帮助。任何人都可以举例说明如何创建类似3x2矩阵的代码吗?

matrix smalltalk squeak
2个回答
5
投票

您应该了解的是Smalltalk如何处理构造函数 - 始终检查Class类。

如果你检查Matrix class,你会发现#new:内部使用^ self rows: dimension columns: dimension。这意味着你:

aMatrix := Matrix new:3

实际上

aMatrix := Matrix rows: 3 columns: 3恰好是你正在寻找的东西。

在我看来,#new:消息不是一个好选择。我宁愿有一个#squareSize:或类似的东西。

注意:不要对变量使用大写(根据你的qazxsw poi赋值进行评论)

编辑:为什么不将大写字母用于本地/实例变量?

开头的大写字母保留给全局变量。你有像A :=Transcript等。例如,类名也是全局的,这就是为什么你有Smalltalk而不是Matrix。对于类实例,您使用previx与matrixa,就像我使用的an是类aMatrix的实例。

不同的Smalltalk口味可能存在差异。例如,在Smalltalk / X中,类变量以大写字母开头,就我所见,这不是GNU Smalltalk中的情况。


2
投票

我现在有了解决方案,对于其他任何想知道如何做到这一点的人。它是Matrix创建矩阵(A x B),其中A和B是整数。

© www.soinside.com 2019 - 2024. All rights reserved.