UByteArray相等运算符

时间:2019-07-03 18:57:20

标签: arrays kotlin equality kotlin-experimental

在Kotlin代码中,我有两个UByteArray对象,我想知道它们中是否包含相同的内容:

val a : UByteArray = get()
val b : UByteArray = get()

if (a == b) println("The same stuff")

相等运算符是否足够,还是必须逐字节比较两个字节?

1 个答案:

答案 0 :(得分:1)

UByteArray和其他无符号类型的数组定义有相等操作,以便与有符号类型数组的相等一致,因此,只有两个UByteArray引用相同的实例时,它们才相等。

两个UByteArray的结构相等性可以通过扩展功能contentEquals找到,与带符号数组相同:

val ubyteArray1 = ubyteArrayOf(1u, 2u, 3u)
val ubyteArray2 = ubyteArrayOf(1u, 2u, 3u)
println(ubyteArray1 contentEquals ubyteArray2)