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 |