Foundations
Functions
Functions name reusable work and return values to the caller.
function call
A function call runs the named function and can use the returned value in another expression.
Functions
Functions.kt
Replay: real traced execution (multi-file project)
fun square(value: Int): Int {
return value * value
}
fun main() {
val side = 5
val area = square(side)
println("side=$side")
println("area=$area")
}
fun square(value: Int): Int {
return value * value
}
fun main() {
val side = 3
val area = square(side)
println("side=$side")
println("area=$area")
}
fun square(value: Int): Int {
return value * value
}
fun main() {
val side = 8
val area = square(side)
println("side=$side")
println("area=$area")
}
side ← 5
5fun main() {6 val side→ 5 = 5 //@side=3, 87 val area = square(side5)fun square(value: Int): Int
1fun square(value5: Int): Int {2 return value5 * value3}area ← 25
6 val side = 5 //@side=3, 87 val area→ 25 = square(side5)89 println("side=$side5")10 println("area=$area25")11}outputside=5 area=25
side ← 3
5fun main() {6 val side→ 3 = 37 val area = square(side3)fun square(value: Int): Int
1fun square(value3: Int): Int {2 return value3 * value3}area ← 9
6 val side = 37 val area→ 9 = square(side3)89 println("side=$side3")10 println("area=$area9")11}outputside=3 area=9
side ← 8
5fun main() {6 val side→ 8 = 87 val area = square(side8)fun square(value: Int): Int
1fun square(value8: Int): Int {2 return value8 * value3}area ← 64
6 val side = 87 val area→ 64 = square(side8)89 println("side=$side8")10 println("area=$area64")11}outputside=8 area=64
Follow the Function Call
sidestarts at5.square(side)sends5into the function.- The function returns
5 * 5. areabecomes25.- The program prints
side=5andarea=25. | side | square result | | --- | --- | | 3 | 9 | | 5 | 25 | | 8 | 64 |
Exercise: Functions.kt
Reproduce area=25 for side 5, then try side 3 and 8 and predict each area before running it.