코틀린에서 클래스의 멤버로 확장 함수를 정의할 수 있습니다. 확장 함수는 클래스의 멤버 함수처럼 호출되지만, 클래스의 코드 범위에서 직접 정의되지 않습니다. 대신 클래스의 외부에서 해당 클래스의 기능을 확장하여 새로운 함수를 추가할 수 있습니다.
확장 함수의 일반적인 형태는 다음과 같습니다.
fun ClassName.extensionFunction() {
// 함수 본문
}
여기서 ClassName은 확장 함수를 추가하려는 클래스의 이름이고, extensionFunction은 새로운 확장 함수의 이름입니다.
예를 들어, String 클래스에 글자 수를 세는 확장 함수를 정의해보겠습니다.
fun String.countCharacters(): Int {
return this.length
}
fun main() {
val message = "Hello, Kotlin!"
val count = message.countCharacters()
println("Character count: $count") // 출력: Character count: 13
}
여기서 countCharacters 함수는 String 클래스의 멤버처럼 호출됩니다. 하지만 이 함수는 String 클래스의 코드 내부에 직접 정의되지 않았습니다. 대신에 확장 함수로 정의되어 외부에서 해당 클래스의 기능을 확장하고자 합니다.
확장 함수를 사용하여 기존 클래스에 새로운 기능을 추가할 수 있으며, 특히 자바 라이브러리나 기존 코드와의 통합에서 유용하게 활용됩니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 enum 클래스 when식 (0) | 2023.12.31 |
---|---|
코틀린 이넘(enum) 클래스 (0) | 2023.12.31 |
코틀린 영역 함수 (0) | 2023.12.31 |
코틀린 수신 객체가 있는 호출 가능 참조 (0) | 2023.12.31 |
코틀린 람다와 수신 객체 지정 함수 타입 (0) | 2023.12.31 |