1. Infix Functions (중위 함수)
중위 함수를 생성할 때는 infix fun
예약어를 사용한다.
<kotlin />
fun main() {
// Infix 함수 정의
infix fun Int.times(message: String) = message.repeat(this)
// 'Bye' 를 2번 반복해서 출력하는 중위 함수(Infix Functions)
println(2.times("Bye "))
println(2 times "Bye ") // .과 ()를 생략하여 표현 할 수 있음
}
원래는 Int.times(String)
형태로 호출하지만, .
과 ()
를 생략하여 표현 할 수 있음
<kotlin />Bye Bye Bye Bye
- 결과 동일
1.1. 다른 예시
<kotlin />
fun main() {
println("Ferrari" to "Katrina")
println("Ferrari".to("Katrina"))
}
위 2개 방식 모두 동일한 코드이며, 동일한 결과를 보여줌
<kotlin />
fun main() {
val sophia = Person("Sophia")
val claudia = Person("Claudia")
sophia likes claudia
}
class Person(val name: String) {
val likedPeople = mutableListOf<Person>()
infix fun likes(other: Person) {
likedPeople.add(other)
}
}
클래스 내부에 infix
함수를 생성하여, Person likes Person
과 같이 사용 가능
2. Operator Functions (연산자 함수)

operator fun
예약어와 plus()
, minus()
, times()
, div()
등 의 메소드를 이용하여 +
, -
, *
, /
를 정의할 수 있다
<kotlin />
fun main() {
operator fun Int.times(message: String) = message.repeat(this)
println(3 * "Bye ")
}
<kotlin />Bye Bye Bye
3. varargs (가변 인자)
varargs
예약어를 사용하여 가변 인자를 만들 수 있다
아래 예제와 같이 인자를 원하는 만큼 넣을 수 있다.
<kotlin />
fun main() {
printAll("Hello")
printAll("Hello", "Kotlin")
printAll("Hello", "Hallo", "안녕")
}
fun printAll(vararg messages: String) {
for (msg in messages) print("$msg ")
println()
}
<kotlin />Hello Hello Kotlin Hello Hallo 안녕
4. 다른 글
2021/03/01 - [Language/Kotlin] - Kotlin - 함수 (Default Parameter Values, Named Arguments)
Kotlin - 함수 (Default Parameter Values, Named Arguments)
Kotlin function 코틀린에서 함수를 생성할 때는 fun 키워드를 사용한다. fun main(args: Array ) { printMessage("World") printMessage("Kotlin") } fun printMessage(message: String): Unit { println("Hello,..
memostack.tistory.com
5. Reference
play.kotlinlang.org/byExample/01_introduction/02_Functions
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
kotlinlang.org/docs/functions.html#infix-notation
Functions - Help | Kotlin
kotlinlang.org
kotlinlang.org/docs/operator-overloading.html#in-operator
Operator overloading - Help | Kotlin
kotlinlang.org
'Language > Kotlin' 카테고리의 다른 글
Kotlin - 함수 (Default Parameter Values, Named Arguments) (0) | 2021.03.01 |
---|---|
Kotlin - 코틀린 시작하기 (Hello World) (0) | 2021.03.01 |