반응형
Kotlin 의 Extension
Kotlin의 extension 함수은 기존 클래스에 새로운 메서드를 추가할 수 있게 해줍니다. 이를 통해 라이브러리 클래스에 소속되지 않은 메서드를 정의할 수 있습니다.
예를 들어, String 클래스에 toTitleCase라는 메서드를 추가하고 싶다면 다음과 같이 할 수 있습니다.
fun String.toTitleCase(): String {
return this.split(" ").joinToString(" ") { it.capitalize() }
}
위의 코드는 String 클래스에 toTitleCase 메서드를 추가합니다. 이 메서드는 문자열을 공백으로 나눈 후 각 단어의 첫 글자를 대문자로 만들어 반환합니다.
Swift의 Extension
Swift에서도 extension을 사용하여 기존 클래스에 새로운 메서드나 프로퍼티를 추가할 수 있습니다. 예를 들어, Int 타입에 'isEven'이라는 프로퍼티를 추가하고 싶다면 다음과 같이 할 수 있습니다.
extension Int {
var isEven: Bool {
return self % 2 == 0
}
}
위의 코드는 Int 타입에 isEven이라는 프로퍼티를 추가합니다. 이 프로퍼티는 해당 정수가 짝수인지를 나타냅니다.
공통점과 차이점
공통점:
- 기존 클래스나 타입에 새로운 기능을 추가할 수 있습니다.
- 기존 클래스의 소스 코드를 수정하지 않고도 확장이 가능합니다.
차이점:
- Kotlin의 extension 함수는 클래스의 멤버 함수처럼 호출되며, 첫 번째 인자로 자신을 참조하는 this 키워드를 사용합니다.
- Swift의 extension은 기존 클래스의 메서드나 프로퍼티를 추가할 때 클래스의 정의를 변경하지 않고 확장합니다.
이러한 extension 기능은 코드의 가독성과 모듈성을 향상시키는데 도움이 되며, 기존 라이브러리나 프레임워크를 확장해 새로운 기능을 추가하는 데 매우 유용합니다.
반응형