今更だけど、Kotlin でやった人が見つからなかったので。
方法1:==
演算子をオーバーロードする
fun main() {
println(a == 1 && a == 2 && a == 3) // > true
}
val a = object {
override fun equals(other: Any?): Boolean = true
}
1 == a
のように左右の項を入れ替えられると期待通りには動かない。
方法2:プロパティを使う
fun main() {
println(a == 1 && a == 2 && a == 3) // > true
}
var a = 0
get() = ++field
a == 3 && a == 2 && a == 1
のように順番を変えられたり数値を変えられたりすると期待通りには動かない。
/以上