Kotlin 中置記法関数(Infix functions)
中置記法関数(infix)
infixは中置記法に対応した関数を定義する。次の例では、Intクラスにadd関数を拡張定義している。3.add(5)のように呼び出すこともでき、infixが付いているため3 add 5のように中置記法で使用することもできる。このように定義された中置記法関数には、Rangeを生成するuntilや、Pairを生成するtoなどがある。
infix fun Int.add(x: Int): Int {
return this + x
}
fun main() {
println(3.add(5)) // 8
println(3 add 5) // 8
}
Infix関数とは、2つの変数の間に来る関数のことである。Kotlinで標準定義されているInfix関数の中には、Pairを作るtoがある。
次のコードを見てみよう。
val pair : Pair<String, String> = "White" to "0xffffff"
"White"と"0xffffff"オブジェクトの間にあるtoがInfix関数である。toは左右のオブジェクトからPairオブジェクトを作成している。
/**
* infixで宣言された中置関数
*
* Intを拡張してmultiply()関数を追加した。
*/
infix fun Int.multiply(x: Int): Int {
return this * x
}
fun main() {
// 通常の表現
val multiply1 = 3.multiply(10)
println("multiply1: $multiply1")
// 中置表現
val multiply2 = 3 multiply 10
println("multiply2: $multiply2")
}
Output:
multiply1: 30
multiply2: 30