[kotlin] 코틀린에서 메서드의 확장

코틀린은 기존 클래스에 새로운 기능을 추가할 수 있는 확장 기능을 제공합니다. 확장 함수는 기존 클래스에 새로운 함수를 추가하고, 확장 프로퍼티는 기존 클래스에 새로운 속성을 추가할 수 있습니다.

확장 함수

확장 함수는 기존 클래스에 새로운 함수를 추가하는 기능을 제공합니다. 다음은 String 클래스에 reversed라는 확장 함수를 추가하는 예제입니다.

fun String.reversed(): String {
    return this.reversed()
}

위의 예제에서 reversed 함수는 String 클래스에 새로운 함수로 추가됩니다. 이제 문자열 객체를 생성할 때 reversed 함수를 호출하여 해당 문자열을 뒤집을 수 있습니다.

val original = "Hello"
val reversed = original.reversed() // "olleH"

확장 프로퍼티

확장 프로퍼티는 기존 클래스에 새로운 속성을 추가하는 기능을 제공합니다. 다음은 Int 클래스에 isEven이라는 확장 프로퍼티를 추가하는 예제입니다.

val Int.isEven: Boolean
    get() = this % 2 == 0

위의 예제에서 isEven 프로퍼티는 Int 클래스에 새로운 속성으로 추가됩니다. 이제 정수 변수를 생성할 때 isEven 속성을 사용하여 해당 정수가 짝수인지를 확인할 수 있습니다.

val number = 4
val isNumberEven = number.isEven // true

코틀린의 확장 기능을 활용하여 기존 클래스에 쉽게 새로운 기능을 추가할 수 있습니다.

결론

코틀린의 확장 기능을 사용하면 기존 클래스에 새로운 기능을 추가할 수 있어서 코드를 더 간결하게 작성할 수 있습니다. 또한 기능의 확장을 통해 기존 클래스를 수정하지 않고도 원하는 기능을 추가할 수 있어 유연한 코드 작성이 가능해집니다.

참고 자료

코틀린 공식 문서 - 확장 함수 코틀린 공식 문서 - 확장 프로퍼티