코틀린에서는 함수에 infix 키워드를 붙여 메소드로 중위호출을 할 수 있습니다
public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
예를 들면 Pair를 만드는 to 메소드가 있습니다
val numToEng = mapOf(
1 to "one",
7 to "seven",
100 to "hundred",
)
이런식으로 맵에 들어갈 key value 페어를 만들 때 사용하는 걸 예를 들 수 있습니다
코틀린엔 이런식으로 중위호출 하는 확장함수가 많아서 편리합니다
주의사항
1 shl 2 + 3 // == 1 shl (2 + 3)
0 until n * 2 // == 0 until (n * 2)
xs union ys as Set<*> // == xs union (ys as Set<*>)
중위호출은 산술연산, 타입 캐스팅, rangeTo 오퍼레이터보다 낮은 우선순위를 갖고 있습니다
a && b xor c // == a && (b xor c)
a xor b in c // == (a xor b) in c
반면 bool 연산(&&, ||), is, in과 기타 연산자들보다는 높은 우선순위를 갖고있다고 합니다
헷갈리니 이런 부분은 괄호를 넣는게 좋을 것 같네요
Reference
반응형
'프로그래밍 > Kotlin' 카테고리의 다른 글
[Kotlin] Delegation (위임) (0) | 2022.03.27 |
---|---|
[Kotlin] local function (로컬 함수) (0) | 2022.03.26 |
[Kotlin] vararg(가변인자), spread operator (0) | 2022.03.21 |
[Kotlin] Extension Property (확장 프로퍼티) (0) | 2022.03.21 |
[Kotlin] Extension function (확장 함수) (0) | 2022.03.21 |