そーす

I'm a programmer in Fukuoka. Please contact me saubre.app[at]gmail.com or Twitter DM.

Kotlinでa == 1 && a == 2 && a == 3

前回の記事はJavaScripta == 1 && a == 2 && a == 3が成り立つにはどうすれば良いか、という内容でしたが元記事のブコメ

プロパティある言語(C#, Swiftなど)ならトリッキーなことしなくても普通にできちゃう

とりあえずKotlinのDelegation。

一番楽ですぐ思いつく方法はコレじゃないでしょうか

import kotlin.reflect.KProperty

class Delegate {
    var count = 0

    operator fun getValue(thisRef: Any?, property: KProperty<*>): Int {
        count++
        return count
    }
}

fun main(args: Array<String>) {
    val a by Delegate()
    if ( a == 1 && a == 2 && a == 3) {
        println("true")
    }
}