Call a function and use the value it returns.

functions A function names a reusable block of code.

Function Basics

name
FunctionBasics.kt
Replay: real traced execution (multi-file project)
fun greeting(name: String): String {
    return "Hello, $name"
}

fun main() {
    val name = "Nia"
    val message = greeting(name)

    println("name=$name")
    println(message)
}
fun greeting(name: String): String {
    return "Hello, $name"
}

fun main() {
    val name = "Omar"
    val message = greeting(name)

    println("name=$name")
    println(message)
}
fun greeting(name: String): String {
    return "Hello, $name"
}

fun main() {
    val name = "Pia"
    val message = greeting(name)

    println("name=$name")
    println(message)
}
  1. name ← Nia

    5fun main() {6    val name→ Nia = "Nia" //@name="Omar", "Pia"7    val message = greeting(nameNia)
  2. fun greeting(name: String): String

    1fun greeting(nameNia: String): String {2    return "Hello, $nameNia"3}
  3. message ← Hello, Nia

    6    val name = "Nia" //@name="Omar", "Pia"7    val message→ Hello, Nia = greeting(nameNia)89    println("name=$nameNia")10    println(messageHello, Nia)11}
    outputname=Nia
    Hello, Nia
  1. name ← Omar

    5fun main() {6    val name→ Omar = "Omar"7    val message = greeting(nameOmar)
  2. fun greeting(name: String): String

    1fun greeting(nameOmar: String): String {2    return "Hello, $nameOmar"3}
  3. message ← Hello, Omar

    6    val name = "Omar"7    val message→ Hello, Omar = greeting(nameOmar)89    println("name=$nameOmar")10    println(messageHello, Omar)11}
    outputname=Omar
    Hello, Omar
  1. name ← Pia

    5fun main() {6    val name→ Pia = "Pia"7    val message = greeting(namePia)
  2. fun greeting(name: String): String

    1fun greeting(namePia: String): String {2    return "Hello, $namePia"3}
  3. message ← Hello, Pia

    6    val name = "Pia"7    val message→ Hello, Pia = greeting(namePia)89    println("name=$namePia")10    println(messageHello, Pia)11}
    outputname=Pia
    Hello, Pia