Kotlin/포스팅

코틀린 클래스 멤버인 확장

짜집퍼박사(짜박) 2023. 12. 31. 03:37

코틀린에서 클래스의 멤버로 확장 함수를 정의할 수 있습니다. 확장 함수는 클래스의 멤버 함수처럼 호출되지만, 클래스의 코드 범위에서 직접 정의되지 않습니다. 대신 클래스의 외부에서 해당 클래스의 기능을 확장하여 새로운 함수를 추가할 수 있습니다.

확장 함수의 일반적인 형태는 다음과 같습니다.

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