A function can calculate a value and send it back to the caller with return.

Return a calculated result

input
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)
  1. input ← 4

    6let input→ 4 = 4  //@input=3, 67let squared = square(input4)8let message = "square=\(squared)"
  2. result ← 16

    1func square(_ value4: Int) -> Int {2    let result→ 16 = value4 * value3    return result164}
  3. 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
  1. input ← 3

    6let input→ 3 = 37let squared = square(input3)8let message = "square=\(squared)"
  2. result ← 9

    1func square(_ value3: Int) -> Int {2    let result→ 9 = value3 * value3    return result94}
  3. 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
  1. input ← 6

    6let input→ 6 = 67let squared = square(input6)8let message = "square=\(squared)"
  2. result ← 36

    1func square(_ value6: Int) -> Int {2    let result→ 36 = value6 * value3    return result364}
  3. 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

  1. input starts as 4.
  2. The function receives that value.
  3. It multiplies 4 * 4.
  4. The return value is 16.
  5. The program prints input=4 and square=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.