본문 바로가기

Android/Kotlin

Kotlin의 Extension 함수

반응형

Kotlin 의 Extension

Kotlin의 extension 함수은 기존 클래스에 새로운 메서드를 추가할 수 있게 해줍니다. 이를 통해 라이브러리 클래스에 소속되지 않은 메서드를 정의할 수 있습니다.

예를 들어, String 클래스에 toTitleCase라는 메서드를 추가하고 싶다면 다음과 같이 할 수 있습니다.

fun String.toTitleCase(): String {
    return this.split(" ").joinToString(" ") { it.capitalize() }
}

위의 코드는 String 클래스에 toTitleCase 메서드를 추가합니다. 이 메서드는 문자열을 공백으로 나눈 후 각 단어의 첫 글자를 대문자로 만들어 반환합니다.

 

Swift의 Extension

Swift에서도 extension을 사용하여 기존 클래스에 새로운 메서드나 프로퍼티를 추가할 수 있습니다. 예를 들어, Int 타입에 'isEven'이라는 프로퍼티를 추가하고 싶다면 다음과 같이 할 수 있습니다.

extension Int {
    var isEven: Bool {
        return self % 2 == 0
    }
}

위의 코드는 Int 타입에 isEven이라는 프로퍼티를 추가합니다. 이 프로퍼티는 해당 정수가 짝수인지를 나타냅니다.

 

반응형

공통점과 차이점

공통점:

  • 기존 클래스나 타입에 새로운 기능을 추가할 수 있습니다.
  • 기존 클래스의 소스 코드를 수정하지 않고도 확장이 가능합니다.

차이점:

  • Kotlin의 extension 함수는 클래스의 멤버 함수처럼 호출되며, 첫 번째 인자로 자신을 참조하는 this 키워드를 사용합니다.
  • Swift의 extension은 기존 클래스의 메서드나 프로퍼티를 추가할 때 클래스의 정의를 변경하지 않고 확장합니다.

이러한 extension 기능은 코드의 가독성과 모듈성을 향상시키는데 도움이 되며, 기존 라이브러리나 프레임워크를 확장해 새로운 기능을 추가하는 데 매우 유용합니다.

반응형