728x90
반응형
1. 확장 함수(Extension Functions): 확장 함수는 이미 존재하는 클래스에 새로운 함수를 추가하는 기능입니다. 다음은 문자열(String) 클래스에 확장 함수를 추가하는 예시입니다:
fun String.removeWhitespace(): String {
return this.replace(" ", "")
}
fun main() {
val str = "Hello World"
val newStr = str.removeWhitespace()
println(newStr) // 출력: HelloWorld
}
위의 예시에서 removeWhitespace()는 String 클래스에 새로운 함수를 추가합니다. str 변수에 대해 removeWhitespace()를 호출하면 공백을 제거한 새로운 문자열을 반환합니다.
2. 유형 별칭(Type Aliases): 유형 별칭은 기존 유형에 새로운 이름을 붙이는 기능입니다. 다음은 Int에 유형 별칭을 추가하는 예시입니다:
typealias Age = Int
fun main() {
val myAge: Age = 27
println(myAge) // 출력: 27
}
위의 예시에서 Age는 Int의 유형 별칭입니다. myAge 변수를 Age 유형으로 선언하여 사용할 수 있습니다.
3. 봉인된 클래스(Sealed Classes): 봉인된 클래스는 특정 유형의 하위 클래스를 제한하는 기능입니다. 다음은 봉인된 클래스를 사용하는 예시입니다:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
}
fun processResult(result: Result) {
when (result) {
is Result.Success -> println("Success: ${result.data}")
is Result.Error -> println("Error: ${result.message}")
}
}
fun main() {
val successResult = Result.Success("Data retrieved successfully")
val errorResult = Result.Error("Failed to retrieve data")
processResult(successResult) // 출력: Success: Data retrieved successfully
processResult(errorResult) // 출력: Error: Failed to retrieve data
}
위의 예시에서 Result는 봉인된 클래스로 선언되었습니다. Result에는 Success와 Error라는 두 개의 하위 클래스가 있습니다. processResult() 함수는 Result 객체를 받아와 해당 객체의 유형에 따라 다른 동작을 수행합니다. 이렇게 코틀린의 확장 함수, 유형 별칭, 봉인된 클래스와 같은 기능을 활용하여 코드를 더 간결하고 유연하게 작성할 수 있습니다. 이러한 기능들은 코틀린의 특징 중 하나로, 다양한 상황에서 유용하게 활용될 수 있습니다.
728x90
반응형
'코틀린' 카테고리의 다른 글
Ktor와 같은 프레임워크를 사용하여 웹 개발 (0) | 2023.06.26 |
---|---|
UI 디자인, 레이아웃 및 활동을 포함하여 Android 앱 개발에 Kotlin을 사용하는 방법 (0) | 2023.06.26 |
코루틴을 활용한 비동기 프로그래밍 기초: 예제를 통한 병렬 작업 이해 및 실행 (0) | 2023.06.26 |
Kotlin의 null 안전 기능에 대한 개요와 null 포인터 예외를 방지하는 법 (0) | 2023.04.13 |
목록, 맵, 세트, 반복자를 포함하여 Kotlin의 컬렉션 프레임워크를 사용하는 방법 (0) | 2023.04.12 |
댓글