我仍在学习 Clojure,似乎无法找到一个简单的答案。我已经看到类似的问题用特定于 OP 问题的复杂代码回答,所以请让我知道以下内容的最准确或可接受的版本:
int[][] arrayTest = new int[width][height];
...
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
int a = arrayTest[x][y];
if (a < 100) {
arrayTest[x][y] = 0;
}
}
}
最佳答案
直译很简单:
(def array-test
(make-array Integer/TYPE width height))
(doseq [x (range width)
y (range height)]
(when (< (aget array-test x y) 100)
(aset-int array-test x y 0)))
但是请注意,数组在 Clojure 中并不常用。除非您想进行快速计算或使用现有的 Java 代码,否则您通常不应创建数组和其他可变数据结构。最有可能的是,您想要实现的内容可以使用 Clojure 的 persistent collections 来完成。
关于clojure - Clojure 中的简单二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51701976/