在 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/

10-16 18:43