3

我想找到一种简洁明了的方法来测试 intarray

起初我试过

mFaces[0].mIndices shouldBe intArrayOf(0, 1, 2)

mIndices在哪里

var mIndices: IntArray = IntArray(0)

但失败了。Intellij 还建议我equals()Arrays覆盖

然后我想尝试这样的事情

mFaces[0].mIndices.all { it. == index } shouldBe true

但看起来没有办法检索it里面的索引all{..}或者是这个

var p = 0
mFaces[0].mIndices.all { it == p++ } shouldBe true

唯一的可能?

4

1 回答 1

4

在 Java (Kotlin) 中,数组是通过引用而不是内容进行比较的。这意味着intArrayOf(1, 2, 3) != intArrayOf(1, 2, 3).

要比较数组的内容,您有 2 个选项:

  1. 使用深度比较:

    Arrays.deepequals(mFaces[0].mIndices, intArrayOf(0, 1, 2))

  2. 使用列表:

    mFaces[0].mIndices.toList() == listOf(0, 1, 2)

于 2016-11-19T10:51:54.640 回答