Functions and Closures
Return Values
A function can calculate a value and send it back to the caller with return.
Return a calculated result
return_values.swift
Replay: real traced execution (multi-file project)
func square(_ value: Int) -> Int {
let result = value * value
return result
}
let input = 4
let squared = square(input)
let message = "square=\(squared)"
print("input=\(input)")
print(message)
func square(_ value: Int) -> Int {
let result = value * value
return result
}
let input = 3
let squared = square(input)
let message = "square=\(squared)"
print("input=\(input)")
print(message)
func square(_ value: Int) -> Int {
let result = value * value
return result
}
let input = 6
let squared = square(input)
let message = "square=\(squared)"
print("input=\(input)")
print(message)
input ← 4
6let input→ 4 = 4 //@input=3, 67let squared = square(input4)8let message = "square=\(squared)"result ← 16
1func square(_ value4: Int) -> Int {2 let result→ 16 = value4 * value3 return result164}squared ← 16, message ← square=16
6let input = 4 //@input=3, 67let squared→ 16 = square(input4)8let message→ square=16 = "square=\(squared16)"910print("input=\(input4)")11print(messagesquare=16)outputinput=4 square=16
input ← 3
6let input→ 3 = 37let squared = square(input3)8let message = "square=\(squared)"result ← 9
1func square(_ value3: Int) -> Int {2 let result→ 9 = value3 * value3 return result94}squared ← 9, message ← square=9
6let input = 37let squared→ 9 = square(input3)8let message→ square=9 = "square=\(squared9)"910print("input=\(input3)")11print(messagesquare=9)outputinput=3 square=9
input ← 6
6let input→ 6 = 67let squared = square(input6)8let message = "square=\(squared)"result ← 36
1func square(_ value6: Int) -> Int {2 let result→ 36 = value6 * value3 return result364}squared ← 36, message ← square=36
6let input = 67let squared→ 36 = square(input6)8let message→ square=36 = "square=\(squared36)"910print("input=\(input6)")11print(messagesquare=36)outputinput=6 square=36
Follow the Return
inputstarts as4.- The function receives that value.
- It multiplies
4 * 4. - The return value is
16. - The program prints
input=4andsquare=16. | input | returned square | | --- | --- | | 4 | 16 | | 3 | 9 | | 6 | 36 |
returns
Use a return value when the caller needs the result of a calculation. The caller can store that result in a variable.
Exercise: return_values.swift
Reproduce input=4 and square=16, then use the pinned input variants 3 and 6 to predict squares 9 and 36.