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 함수는 두개의 변수 가운데 오는 함수를 말한다. 코틀린에서 기본적으로 정의된 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:

참조