Kotlin Extension Function
클래스를 확장하면서 만든 새로운 함수를 확장 함수(extension function)라고 한다.
Kotlin Extension Function은 클래스를 상속하거나 어떤 유형의 디자인 패턴을 사용하지 않고도 클래스를 확장하는 기능을 제공한다.
• Receiver type : 확장 함수를 추가할 클래스를 말한다. 즉, 확장 대상이 될 클래스이다.
• Receiver object : 확장 함수 내부를 구현할 때 this로 receiver type이 가지고 있는 public 인스턴스에 접근할 수 있다. 이렇게 접근한 객체를 receiver object 라고 부른다.
기본 구조는, 아래와 같이 확장할 클래스명 뒤에 원하는 함수명을 붙여주기만 하면 된다.
fun <class_name>.<method_name>()
예제로 String 클래스를 확장하여 첫 번째 문자와 마지막 문자가 제거된 새 문자열을 반환하는 기능을 만들어 보자.
// 문자열의 첫 번째와 마지막 문자 제거
fun String.removeFirstLastChar(): String = this.substring(1, this.length - 1)
fun main(args: Array<String>) {
val myString= "Hello Everyone"
val result = myString.removeFirstLastChar()
println("Result is: $result")
}
확장 함수인 removeFirstLastChar()가 String 클래스에 추가된다.
확장 함수를 정의할 때는 receiver type에 .(dot) 을 붙이고 새로운 함수를 만들어주면 된다.
정의한 함수를 구현할 때는 this 키워드를 사용하여 receiver type에 속한 인스턴스에 접근할 수 있다.
Result is: ello everyon
'Android > Kotlin' 카테고리의 다른 글
[Kotlin] Collections(List, Set, Map) (0) | 2021.10.24 |
---|---|
[Kotlin] 코틀린 null 처리 - Safe call, non-null, Elvis operator (0) | 2021.10.24 |
[Kotlin] Higher-Order Function, Lambda(고차 함수와 람다) (0) | 2021.09.07 |
댓글