Concept Flow - Functions returning tuples
Call function
Function runs code
Create tuple with values
Return tuple to caller
Use tuple values
The function runs, creates a tuple with multiple values, returns it, and the caller uses those values.
func getUser() -> (name: String, age: Int) { return ("Alice", 30) } let user = getUser() print(user.name, user.age)
| Step | Action | Evaluation | Result |
|---|---|---|---|
| 1 | Call getUser() | Function starts | Function running |
| 2 | Return tuple ("Alice", 30) | Tuple created | (name: "Alice", age: 30) |
| 3 | Assign tuple to user | user = (name: "Alice", age: 30) | user holds tuple |
| 4 | Print user.name and user.age | Access tuple elements | Output: Alice 30 |
| 5 | End | No more code | Program ends |
| Variable | Start | After Step 2 | After Step 3 | Final |
|---|---|---|---|---|
| user | nil | nil | (name: "Alice", age: 30) | (name: "Alice", age: 30) |
func functionName() -> (type1, type2) {
return (value1, value2)
}
- Functions can return multiple values as a tuple.
- Use parentheses to group values.
- Access tuple elements by name or index.x and y as Int?func minMax(numbers: [Int]) -> (min: Int, max: Int) {
var currentMin = numbers[0]
var currentMax = numbers[0]
for number in numbers[1...] {
if number < currentMin { currentMin = number }
if number > currentMax { currentMax = number }
}
return (currentMin, currentMax)
}
let result = minMax(numbers: [3, 7, 2, 9, 4])
print(result.min, result.max)func divide(_ a: Int, _ b: Int) -> (quotient: Int, remainder: Int) {
let q = a / b
let r = a % b
return q, r
}Pass the test and this pattern moves unknown