[kotlin] 스코프 함수와 확장 함수의 차이점

Kotlin에서는 스코프 함수와 확장 함수를 사용하여 객체의 범위를 정의하고 연산을 수행 할 수 있습니다.

스코프 함수

스코프 함수는 수신 객체(this)에 대해 동작을 수행하고 결과를 반환합니다. Kotlin에서 제공하는 주요 스코프 함수로는 let, run, with, apply, also가 있습니다.

예시

val result = "Hello, World".let {
    it.length
}

이 예시에서 let 함수는 문자열 수신 객체에 대해 length를 호출하고 이 값을 result에 반환합니다.

확장 함수

확장 함수는 기존 클래스에 새로운 함수를 추가 할 수 있는 기능을 제공합니다. 확장 함수를 사용하면 외부 라이브러리나 기존의 코드를 수정하지 않고도 새로운 함수를 추가할 수 있습니다.

예시

fun String.isPhoneNumber(): Boolean {
    return this.matches(Regex("\\d{3}-\\d{3}-\\d{4}"))
}

위의 예시에서 isPhoneNumber 확장 함수는 String 클래스에 추가되어 문자열을 전화번호 형식으로 유효성을 검사합니다.

차이점

이러한 차이점들을 고려하여 상황에 맞게 스코프 함수와 확장 함수를 적절히 활용할 수 있습니다.

결론

스코프 함수와 확장 함수는 Kotlin에서 객체의 범위를 지정하거나 기존 클래스를 확장하여 새로운 함수를 추가하는데 사용됩니다. 각각의 특징에 맞게 적재적소에 활용할 수 있도록 익히고 활용할 수 있으면 코드의 가독성과 유지보수성을 높일 수 있습니다.

참고문헌: