Define a helper function inside another function.

scope A local function is visible only inside the function that defines it.

Local Functions

bonus
LocalFunctions.kt
Replay: real traced execution (multi-file project)
fun main() {
    val bonus = 3

    fun addBonus(points: Int): Int {
        return points + bonus
    }

    val base = 10
    val total = addBonus(base)

    println("bonus=$bonus")
    println("total=$total")
}
fun main() {
    val bonus = 0

    fun addBonus(points: Int): Int {
        return points + bonus
    }

    val base = 10
    val total = addBonus(base)

    println("bonus=$bonus")
    println("total=$total")
}
fun main() {
    val bonus = 5

    fun addBonus(points: Int): Int {
        return points + bonus
    }

    val base = 10
    val total = addBonus(base)

    println("bonus=$bonus")
    println("total=$total")
}
  1. bonus ← 3, base ← 10

    1fun main() {2    val bonus→ 3 = 3 //@bonus=0, 534    fun addBonus(points: Int): Int {5        return points + bonus6    }78    val base→ 10 = 109    val total = addBonus(base10)
  2. fun addBonus(points: Int): Int

    4fun addBonus(points10: Int): Int {5    return points10 + bonus36}
  3. total ← 13

    8    val base = 109    val total→ 13 = addBonus(base10)1011    println("bonus=$bonus3")12    println("total=$total13")13}
    outputbonus=3
    total=13
  1. bonus ← 0, base ← 10

    1fun main() {2    val bonus→ 0 = 034    fun addBonus(points: Int): Int {5        return points + bonus6    }78    val base→ 10 = 109    val total = addBonus(base10)
  2. fun addBonus(points: Int): Int

    4fun addBonus(points10: Int): Int {5    return points10 + bonus06}
  3. total ← 10

    8    val base = 109    val total→ 10 = addBonus(base10)1011    println("bonus=$bonus0")12    println("total=$total10")13}
    outputbonus=0
    total=10
  1. bonus ← 5, base ← 10

    1fun main() {2    val bonus→ 5 = 534    fun addBonus(points: Int): Int {5        return points + bonus6    }78    val base→ 10 = 109    val total = addBonus(base10)
  2. fun addBonus(points: Int): Int

    4fun addBonus(points10: Int): Int {5    return points10 + bonus56}
  3. total ← 15

    8    val base = 109    val total→ 15 = addBonus(base10)1011    println("bonus=$bonus5")12    println("total=$total15")13}
    outputbonus=5
    total=15