자바 개발자를 위한 코틀린 입문 - 15. 코틀린에서 다양한 함수를 다루는 방법


자바 개발자를 위한 코틀린 입문 에 강의 내용을 정리한 내용이다.
코틀린에서 다양한 함수를 다루는 방법에 대해서 설명한다.

확장함수

수신객체클래스를 멤버함수 처럼 사용할 수 있다.

  1. 확장함수는 원본 클래스의 private, protected 멤버 접근이 안된다.
  2. 멤버함수, 확장함수 중 멤버함수에 우선권이 있다.
  3. 확장함수는 현재 타입을 기준으로 호출된다.
1
2
3
4
5
6
7
8
9
10
fun main() {

val str = "ABC"
println(str.lastChar()) // "C"

}

fun String.lastChar(): Char {
return this[this.length - 1]
}

infix 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fun main() {

3.add(4)

3.add2(4)
3 add2 4

}

fun Int.add(other: Int): Int {
return this + other
}

infix fun Int.add2(other: Int): Int {
return this + other
}

inline 함수

함수가 호출되는 대신, 함수를 호출한 지점에 함수 본문을 그대로 복붙하고 싶을 경우

1
2
3
inline fun Int.add3(other: Int): Int {
return this + other
}

소스코드

참조