[kotlin] 코틀린에서 함수의 확장

코틀린은 기존 클래스에 새로운 기능을 추가할 수 있도록 함수의 확장(Extension Functions)을 제공합니다. 이는 기존 클래스의 수정 없이 새로운 함수를 추가할 수 있는 강력한 기능으로, 코드의 가독성과 모듈성을 높일 수 있습니다.

함수의 확장 구문

코틀린에서 함수의 확장은 다음과 같은 구문을 사용합니다.

fun ExistingClass.extensionFunction() {
    // 함수의 내용
}

위에서 ExistingClass는 기존 클래스의 이름이며, extensionFunction은 새로 추가되는 함수의 이름입니다.

실제 예시

예를 들어, String 클래스에 reversed라는 문자열을 뒤집는 함수를 추가하고 싶다면 다음과 같이 확장 함수를 정의할 수 있습니다.

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

위의 예시에서 String 클래스에는 reversed 함수가 없지만, 확장 함수를 통해 이를 추가할 수 있습니다.

함수의 사용

확장 함수를 정의한 후에는 해당 클래스의 인스턴스에서 일반 함수처럼 호출할 수 있습니다.

val originalString = "hello"
val reversedString = originalString.reversed()

originalString이라는 문자열 변수에 대해 reversed() 함수를 호출하여 문자열을 뒤집을 수 있습니다.

함수의 확장은 다형성(다양한 형태의 객체를 다루는 방식)을 활용함으로써 라이브러리 클래스나 외부 라이브러리의 클래스에도 적용할 수 있어 매우 유용합니다.

함수의 확장을 통해 클래스의 기능을 확장하고 새로운 기능을 추가할 수 있으므로, 적절하게 활용하면 코드의 직관성을 높이고 유지보수가 쉬운 코드를 작성할 수 있습니다.

이상으로 코틀린에서 함수의 확장에 대해 알아보았습니다. 다음 포스트에서 또 다른 흥미로운 기능을 알아보겠습니다!

참고 문헌: 코틀린 공식 홈페이지