[kotlin] 확장 함수와 확장 프로퍼티의 사용법
코틀린은 기존 클래스에 새로운 기능을 추가할 수 있도록 확장 함수와 확장 프로퍼티를 제공합니다. 이 기능을 사용하면 기존 클래스의 코드를 수정하지 않고도 새로운 기능을 추가할 수 있어 유용합니다.
확장 함수
확장 함수는 기존 클래스에 새로운 함수를 추가하는 것을 가능하게 합니다. 사용법은 간단합니다. 다음은 String
클래스에 reverse
라는 확장 함수를 추가하는 예제입니다.
fun String.reverse(): String {
return this.reversed()
}
위의 코드에서 reverse
함수는 String
클래스에 추가되었으며, 이제 모든 String
인스턴스에서 reverse
함수를 호출할 수 있습니다.
val original = "hello"
val reversed = original.reverse()
println(reversed) // 출력: "olleh"
확장 프로퍼티
확장 프로퍼티는 기존 클래스에 새로운 프로퍼티를 추가하는 것을 가능하게 합니다. 다음은 String
클래스에 lengthIsEven
이라는 확장 프로퍼티를 추가하는 예제입니다.
val String.lengthIsEven: Boolean
get() = this.length % 2 == 0
위의 코드에서 lengthIsEven
프로퍼티는 String
클래스에 추가되었으며, 이제 모든 String
인스턴스에서 lengthIsEven
프로퍼티를 사용할 수 있습니다.
val result = "hello".lengthIsEven
println(result) // true
주의사항
확장 함수 및 확장 프로퍼티를 남발하면 코드의 가독성이 떨어질 수 있으므로, 신중하게 사용하는 것이 좋습니다. 또한, 확장 함수로는 private이나 protected 멤버에 접근할 수 없으며, 확장 프로퍼티로는 필드를 가질 수 없습니다.
확장 함수와 확장 프로퍼티는 기존 클래스를 확장하여 새로운 기능을 추가하는 강력한 기능이지만, 적절하게 사용하여 코드 유지보수성을 고려해야 합니다.