为什么"fooin list"返回false,即使arrayListOf包含它?



我正在用我写的 Kotlin 尝试这段代码(我是 Kotlin 的初学者)。我希望收到"真",但是即使listo包含它,我也收到了"假"。这是我的代码:

fun main(args: Array<String>) {
class product(var product: String, var productName: String)
val listo = arrayListOf(
product("shirt", "yoyo")
)
val testing = product("shirt", "yoyo")
if (testing in listo) {
println("True")
} else {
println("False")
}
}

如何解决这个问题?任何帮助都非常感谢

product类不会重写equals方法,因此它正在执行对象实例比较,并且两个列表包含不同的对象。

您可以使用自动生成equals方法data class product(...声明product,该方法将比较两个字符串属性,这意味着listo将包含testing。它还生成了一堆其他方便的方法。

https://kotlinlang.org/docs/reference/data-classes.html

相关内容