Function declaration syntax in Swift - Time & Space Complexity
We want to understand how the time it takes to run a function changes as the input size changes.
Specifically, we ask: how does declaring and calling a simple function affect execution time?
Analyze the time complexity of the following code snippet.
func greet(name: String) {
print("Hello, \(name)!")
}
greet(name: "Alice")
This code defines a function that prints a greeting and then calls it once.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: A single function call that prints a message.
- How many times: Exactly once in this example.
Since the function runs once and does a fixed amount of work, the time does not grow with input size.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 1 |
| 100 | 1 |
| 1000 | 1 |
Pattern observation: The work stays the same no matter how big the input is.
Time Complexity: O(1)
This means the function takes the same amount of time no matter what.
[X] Wrong: "Declaring a function makes the program slower as input grows."
[OK] Correct: Declaring a function itself does not repeat work or depend on input size; only what happens inside matters.
Understanding that simple function calls run in constant time helps you explain code efficiency clearly and confidently.
"What if the function contained a loop over an array of size n? How would the time complexity change?"
Practice
Solution
Step 1: Recall Swift function declaration
In Swift, functions always start with the keywordfunc.Step 2: Compare options
Only func usesfunc, the correct keyword for Swift functions.Final Answer:
func -> Option BQuick Check:
Swift functions start with func [OK]
- Using 'function' instead of 'func'
- Confusing Swift with Python's 'def'
- Using 'method' which is not a keyword
greet that takes no parameters and returns nothing?Solution
Step 1: Check function declaration syntax
In Swift, a function with no parameters and no return type is declared asfunc name() {}.Step 2: Analyze each option
func greet() {} matches the correct syntax. function greet() {} uses 'function' which is invalid. func greet {} misses parentheses. func greet() -> void {} uses 'void' which is not used in Swift.Final Answer:
func greet() {} -> Option DQuick Check:
Empty parameter list needs () and no return type means no arrow [OK]
- Omitting parentheses for parameters
- Using 'function' instead of 'func'
- Using 'void' as return type in Swift
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 3, b: 4))Solution
Step 1: Understand function parameters and return
The functionaddtakes two integers and returns their sum.Step 2: Calculate the function call result
Callingadd(a: 3, b: 4)returns 3 + 4 = 7, which is printed.Final Answer:
7 -> Option CQuick Check:
Sum of 3 and 4 is 7 [OK]
- Concatenating numbers as strings
- Forgetting to return a value
- Misunderstanding parameter labels
func multiply(a: Int, b Int) -> Int {
return a * b
}Solution
Step 1: Check parameter syntax
Each parameter must have a colon between its name and type. Here,b Intis missing a colon.Step 2: Confirm other parts are correct
The return keyword is present, function name is valid, and return type Int is appropriate.Final Answer:
Missing colon between parameter name and type for b -> Option AQuick Check:
Parameters need colon between name and type [OK]
- Omitting colon in parameter list
- Forgetting return keyword
- Using wrong return type
describePerson that takes a String parameter name and an Int parameter age, and returns a String describing the person like "Name is Age years old." Which is the correct function declaration?Solution
Step 1: Check parameter syntax and return type
Parameters must have colons between name and type. The function returns a String, so return type must be String.Step 2: Verify function body matches return type
func describePerson(name: String, age: Int) -> String { return "\(name) is \(age) years old." } returns a String with correct string interpolation. func describePerson(name String, age Int) -> String { return "\(name) is \(age) years old." } misses colons. func describePerson(name: String, age: Int) { print("\(name) is \(age) years old.") } has no return type and uses print instead of return. func describePerson(name: String, age: Int) -> Void { return "\(name) is \(age) years old." } uses Void return type but returns a String, which is invalid.Final Answer:
func describePerson(name: String, age: Int) -> String { return "\(name) is \(age) years old." } -> Option AQuick Check:
Correct parameters and return type with string interpolation [OK]
- Omitting colons in parameters
- Using print instead of return for returning values
- Mismatching return type and returned value
Ready to prove it?
Pass the test and this pattern moves unknown
