[kotlin] 함수형 인터페이스와 확장 함수

코틀린은 자바와 같이 객체지향 프로그래밍 언어지만 병렬적으로 함수형 프로그래밍을 지원합니다. 코틀린의 강력한 기능 중 하나는 함수형 인터페이스와 확장 함수입니다. 이러한 기능들을 사용하여 코드의 가독성을 높이고 유지보수성을 향상시킬 수 있습니다.

함수형 인터페이스 (Functional Interface)

함수형 인터페이스란 하나의 추상 메서드만을 갖고 있는 인터페이스를 말합니다. 즉, 단 하나의 메서드만을 정의할 수 있는 특별한 형태의 인터페이스로, 람다식과 함께 사용될 수 있습니다. 코틀린은 함수형 인터페이스를 선언하기 위해 fun 키워드를 사용합니다.

fun interface ClickListener {
    fun onClick()
}

위의 예제에서 ClickListener는 함수형 인터페이스로, onClick이라는 하나의 메서드만을 가지고 있습니다.

함수형 인터페이스를 사용하면 코드가 간결해지고 가독성이 향상됩니다. 함수형 프로그래밍의 장점을 코틀린에서도 활용할 수 있습니다.

확장 함수 (Extension Function)

확장 함수는 기존 클래스에 새로운 함수를 추가할 수 있는 강력한 기능입니다. 이를 통해 코틀린은 자바의 라이브러리 클래스도 수정 없이 확장할 수 있습니다.

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

위의 예제에서 capitalizeWords 함수는 String 클래스에 새로운 기능을 추가하는 확장 함수입니다. 이를 통해 기존 String 클래스의 기능을 수정하지 않고도 원하는 기능을 추가할 수 있습니다.

결론

코틀린의 함수형 인터페이스와 확장 함수는 코드의 가독성과 유지보수성을 높이는 강력한 도구입니다. 이러한 기능을 활용하여 코틀린으로 더욱 간결하고 효율적인 프로그래밍을 할 수 있습니다.

더 많은 정보는 코틀린 공식 문서 를 참고하세요.