[코틀린인액션] 확장 프로퍼티 사용

확장 프로퍼티 정의

  • 읽기 전용 확장 프로퍼티
    • val 키워 사용 게터 구현이 필요함
  • 변경 가능한 확장 프로퍼티
    • var 키워드를 사용하여 정의하고, 게터와 세터를 모두 구현해야함

사용

  1. 읽기 전용 확장 프로퍼티
    fun String.lastChar(): Char = this.get(this.length - 1)
    
    fun main() {
        val lastChar = "Kotlin".lastChar
        
        println("lastChar = $lastChar");
    }
    
    //lastChar = n
  1. 변경 가능한 확장 프로퍼티
    var StringBuilder.lastChar: Char
        get() = get(length - 1)
        set(value: Char) {
            this.setCharAt(length - 1, value)
        }
    
    fun main() {
        // StringBuilder 객체 생성
        val sb = StringBuilder("Hello Kotlin")
        // 마지막 문자 읽기
        println("Last character: ${sb.lastChar}")
        // 마지막 문자 수정하기
        sb.lastChar = '!'
        // 수정된 문자열 출력
        println("Modified string: $sb")
    }
    
    //Last character: n
    //Modified string: Hello Kotli!

프로퍼티의 게터 세터를 정의할 수 있다.


Uploaded by N2T