拡張

Kotlinの拡張について。

拡張とは

ある既存のクラスに新しくメソッドやプロパティなどを定義する方法です。

拡張関数

fun main(args: Array<String>) {
    //拡張関数の例:既存のIntクラスにisOddメソッドを追加する
    fun Int.isOdd(): Boolean = (this % 2 != 0)
    5.isOdd() //true
    8.isOdd() //false

    //なお、既存のメソッドと同一のシグネチャの拡張関数を定義してもその拡張関数は実行されない
    fun Int.plus(n: Int): Int = 0 //plusメソッドを常に0を返すように拡張する??
    val ans = 10.plus(2)
    println(ans)//12 (シグネチャが同じ場合は拡張関数ではなく既存のメソッドが呼ばれる)

}

拡張プロパティ

//拡張プロパティの例:IntクラスにプロパティisOddを追加する
val Int.isOdd: Boolean
    get() = (this % 2 != 0)


//拡張プロパティを呼び出す
println(7.isOdd)

所感

やっていることはごく自然な印象を受けますが、うまく使わないといけないかもしれませんね。