Compute a property when it is read.

getter A custom getter runs code whenever the property is read.

Custom Getter

width
CustomGetter.kt
Replay: real traced execution (multi-file project)
class Box(val width: Int, val height: Int) {
    val area: Int
        get() {
            return width * height
        }
}

fun main() {
    val width = 4
    val box = Box(width, 3)
    val area = box.area

    println("width=$width")
    println("area=$area")
}
class Box(val width: Int, val height: Int) {
    val area: Int
        get() {
            return width * height
        }
}

fun main() {
    val width = 2
    val box = Box(width, 3)
    val area = box.area

    println("width=$width")
    println("area=$area")
}
class Box(val width: Int, val height: Int) {
    val area: Int
        get() {
            return width * height
        }
}

fun main() {
    val width = 7
    val box = Box(width, 3)
    val area = box.area

    println("width=$width")
    println("area=$area")
}
  1. width ← 4, area ← 12

    8fun main() {9    val width→ 4 = 4 //@width=2, 710    val box = Box(width4, 3)11    val area→ 12 = box.area121213    println("width=$width4")14    println("area=$area12")15}
    outputwidth=4
    area=12
  1. width ← 2, area ← 6

    8fun main() {9    val width→ 2 = 210    val box = Box(width2, 3)11    val area→ 6 = box.area61213    println("width=$width2")14    println("area=$area6")15}
    outputwidth=2
    area=6
  1. width ← 7, area ← 21

    8fun main() {9    val width→ 7 = 710    val box = Box(width7, 3)11    val area→ 21 = box.area211213    println("width=$width7")14    println("area=$area21")15}
    outputwidth=7
    area=21