matrix - 吱吱声:创建具有指定行和列的矩阵
问题描述
我只是想在 Squeak (Smalltalk) 中进行分配,但我不知道如何创建具有特定行数和列数的矩阵。
我知道可以用类似的东西创建一个 3x3 矩阵A := Matrix new:3.
,但我需要类似 3x2 矩阵的东西。系统浏览器对我理解如何做到这一点没有多大帮助,而且我已经在互联网上搜索了一段时间,也没有找到任何帮助。谁能给出一个示例代码行来说明如何创建类似 3x2 矩阵的东西?
解决方案
您应该了解 Smalltalk 如何处理构造函数 - 始终检查 Class 类。
如果您检查,Matrix class
您会发现#new:
内部使用^ self rows: dimension columns: dimension
. 这意味着您的:
aMatrix := Matrix new:3
实际上确实
aMatrix := Matrix rows: 3 columns: 3
,这恰好是您正在搜索的内容。
在我看来,#new:
消息不是一个好的选择。我宁愿有一个#squareSize:
或类似的东西。
注意:不要对变量使用大写字母(根据您的分配进行评论A :=
)
编辑:为什么不对本地/实例变量使用大写字母?
开头的大写字母是为全局变量保留的。你有这样的喜欢Transcript
,Smalltalk
等等。例如,类名也是全局的,这就是你有Matrix
而不是 matrix
的原因。对于类实例,您使用 previx witha
或an
像我使用aMatrix
的是 class 的实例Matrix
。
不同的 Smalltalk 风格之间可能存在细微差别。例如,在 Smalltalk/X 中,类变量以大写字母开头,据我所知,在 GNU Smalltalk 中并非如此。
推荐阅读
- python - 如何在 R 中激活 anaconda 环境
- jenkins - 如何运行 groovy 脚本来读取构建原因?
- python - 类方法不更新属性
- swift - 如何将节点物理体形设置为边界框
- vim - 如何在vim中禁用鼠标和tracpad?
- rest - 代理 K8S 应用程序委托对来自其他 pod 的请求进行身份验证
- sql - 无法查看一个数据库
- android - 使用意图类型 application/vnd.android.package-archive 时,包安装程序未打开文件
- python - Python DF:如何根据条件为一行选择多列中的值?
- html - 如何将数据从 Angular 中的 datalist 发送到 Rest api