본문 바로가기

두두의 IT

[Kotlin] Infix 함수

728x90

Infix 함수

  • 두개의 변수 가운데 오는 함수
  • to, and 등

to : 양 옆의 객체들로 Pair 객체를 만들어줌

Infix 함수인 to를 사용한 코드를 보면 key가 value에 매핑된다는 것을 명확히 알 수 있습니다.

 

val map1 = mapOf(Pair("key1", "value1"), Pair("key2", "value2"))
val map2 = mapOf("key1" to "value1", "key2" to "value2")

 

Infix 함수 사용자 정의

문자열 "Hello"는 dispatcher이고, 문자열 "World"는 receiver입니다.

구현부에서 사용한 this는 dispatcher 객체를 의미합니다.

아래 코드를 실행시키면 두개의 객체(dispatcher, receiver)가 합쳐져 HelloWorld가 출력됩니다.

infix fun dispatcher.함수이름(receiver): 리턴타입 { 
	구현부 
}

//Ex)
infix fun String.add(other:String): String {
    return this + other
}
val string = "Hello" add "World"
System.out.println(string)		// HelloWorld

클래스 내에 Infix 함수 정의

클래스 내에 정의하면 dispatcher가 클래스 자신이기 때문에 생략할 수 있음

class MyString {
    var string = ""
    infix fun add(other: String) {
        this.string = this.string + other
    }
}

val myString = MyString()
myString add "Hello"
myString add "World"
myString add "Kotlin"
System.out.println(myString.string)		// HelloWorldKotlin

 

'두두의 IT' 카테고리의 다른 글

기본 Port  (0) 2022.04.22
Windows 기본 상식  (0) 2022.04.22
[Kotlin] 가변인자 vararg(Variable number of arguments)  (0) 2022.04.12
[Kotlin] Inline 함수  (0) 2022.04.12
[Kotlin] data Class  (0) 2022.04.12