在 java 或 C# 中,可以使用两个嵌套的 for 循环来填充二维数组,但在 smalltalk 中,我似乎找不到这样做的方法。
有人可以帮我吗?
array filling
最佳答案
您可以使用 Matrix
并将其创建为:
| random |
random := Random new.
^ Matrix
rows: rowNumber
columns: columnNumber
tabulate: [ :i :j | random next ]
其中 i 和 j 是元素的索引(我没有在示例中使用)
如果你真的想用二维数组做一些事情,我建议你做这样的事情:
| random |
random := Random new.
^ (1 to: rowNumber) collect: [ :i |
(1 to: columnNumber) collect: [ :j |
random next ]
您还可以在创建后遍历矩阵:
| random matrix |
random := Random new.
matrix := Matrix rows: rowNumber columns: columnNumber.
martix indicesCollect: [ :i :j | random next ].
^ matrix
关于Smalltalk 如何用随机数填充二维数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35589603/