Bird
Raised Fist0
Swiftprogramming~5 mins

Trailing closure syntax in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is trailing closure syntax in Swift?
Trailing closure syntax lets you write a closure outside the parentheses of a function call when the closure is the last argument.
Click to reveal answer
beginner
How do you write a trailing closure for a function with one closure parameter?
You call the function without passing the closure inside parentheses. Instead, you write the closure after the function call parentheses.
Click to reveal answer
beginner
Example: Convert this call to use trailing closure syntax:
array.map({ number in number * 2 })
Using trailing closure syntax:
array.map { number in number * 2 }
Click to reveal answer
intermediate
Can you use trailing closure syntax if the closure is not the last argument?
No. Trailing closure syntax only works if the closure is the last argument in the function call.
Click to reveal answer
beginner
Why is trailing closure syntax useful?
It makes code cleaner and easier to read, especially when the closure is long or multi-line.
Click to reveal answer
What does trailing closure syntax allow you to do in Swift?
AWrite the last closure argument outside the parentheses
BWrite all closures inside the parentheses
CUse closures only with no arguments
DAvoid using closures entirely
Which of these is a correct use of trailing closure syntax?
AfunctionName(5, { /* closure code */ })
BfunctionName({ /* closure code */ })
CfunctionName({ /* closure code */ }, 5)
DfunctionName() { /* closure code */ }
Can you use trailing closure syntax if the function has multiple parameters and the closure is not last?
ANo, only if closure is last
BYes, always
CYes, but only for one parameter functions
DNo, closures cannot be trailing
What is the benefit of using trailing closure syntax?
AMakes code longer
BMakes code cleaner and easier to read
CRemoves the need for closures
DMakes code harder to read
Which Swift function call uses trailing closure syntax correctly?
Anumbers.filter({ $0 > 5 }, true)
Bnumbers.filter({ $0 > 5 })
Cnumbers.filter { $0 > 5 }
Dnumbers.filter(true, { $0 > 5 })
Explain what trailing closure syntax is and when you can use it in Swift.
Think about how closures are passed to functions and where you place them.
You got /3 concepts.
    Describe the benefits of using trailing closure syntax in your Swift code.
    Consider how code looks with and without trailing closures.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does trailing closure syntax allow you to do in Swift?
      func perform(action: () -> Void) { action() }
      easy
      A. Write the last closure argument outside the parentheses
      B. Use closures only inside parentheses
      C. Avoid using closures altogether
      D. Write closures only as named functions

      Solution

      1. Step 1: Understand closure arguments in Swift functions

        Swift functions can take closures as arguments, usually inside parentheses.
      2. Step 2: Identify trailing closure syntax purpose

        Trailing closure syntax lets you write the last closure argument outside the parentheses for cleaner code.
      3. Final Answer:

        Write the last closure argument outside the parentheses -> Option A
      4. Quick Check:

        Trailing closure syntax = last closure outside parentheses [OK]
      Hint: Last closure can go outside parentheses for clarity [OK]
      Common Mistakes:
      • Thinking closures must always be inside parentheses
      • Confusing trailing closures with named functions
      • Believing trailing closures remove closures entirely
      2. Which of the following is the correct way to use trailing closure syntax in Swift?
      func greet(action: () -> Void) { action() }
      easy
      A. greet() { print("Hello") }
      B. greet { print("Hello") }
      C. greet { print("Hello") }()
      D. greet(print("Hello"))

      Solution

      1. Step 1: Recall trailing closure syntax format

        Trailing closure syntax allows calling a function with a closure outside parentheses if it's the last argument.
      2. Step 2: Check each option

        greet { print("Hello") } correctly calls greet with closure outside parentheses: greet { print("Hello") }.
      3. Final Answer:

        greet { print("Hello") } -> Option B
      4. Quick Check:

        Trailing closure syntax = function { closure } [OK]
      Hint: Use braces after function name without parentheses for trailing closure [OK]
      Common Mistakes:
      • Adding empty parentheses before trailing closure
      • Trying to call closure immediately with () after braces
      • Passing closure as a normal argument inside parentheses
      3. What is the output of this Swift code?
      func repeatTask(times: Int, task: () -> Void) {
          for _ in 1...times { task() }
      }
      
      repeatTask(times: 3) {
          print("Hi")
      }
      medium
      A. Hi Hi Hi
      B. Hi Hi Hi
      C. Hi Hi
      D. Error: Missing parentheses

      Solution

      1. Step 1: Understand repeatTask function behavior

        The function calls the closure 'task' the number of times specified by 'times'. Here, times = 3.
      2. Step 2: Analyze the closure call

        The closure prints "Hi" each time. So it prints "Hi" three times, each on a new line because print adds a newline.
      3. Final Answer:

        Hi Hi Hi -> Option A
      4. Quick Check:

        3 prints of "Hi" each on new line = Hi Hi Hi [OK]
      Hint: print adds newline, so repeated prints appear on separate lines [OK]
      Common Mistakes:
      • Assuming prints appear on same line without newline
      • Thinking trailing closure causes syntax error
      • Confusing number of repetitions
      4. Identify the error in this Swift code using trailing closure syntax:
      func calculate(operation: (Int, Int) -> Int) {
          let result = operation(5, 3)
          print(result)
      }
      
      calculate() { (a, b) in
          a + b
      }
      medium
      A. Trailing closure syntax cannot be used here
      B. Missing return keyword inside closure
      C. Closure parameters should be outside parentheses
      D. Extra parentheses after calculate() when using trailing closure

      Solution

      1. Step 1: Check function call syntax with trailing closure

        When using trailing closure syntax, do not include empty parentheses before the closure.
      2. Step 2: Identify the error in code

        The code calls calculate() with empty parentheses and then a trailing closure, which is incorrect syntax.
      3. Final Answer:

        Extra parentheses after calculate() when using trailing closure -> Option D
      4. Quick Check:

        Trailing closure means no parentheses if no other arguments [OK]
      Hint: Remove empty parentheses when using trailing closure [OK]
      Common Mistakes:
      • Including empty parentheses before trailing closure
      • Adding unnecessary return in single-expression closure
      • Thinking trailing closure can't have parameters
      5. Given this Swift function:
      func fetchData(completion: (String) -> Void) {
          let data = "User info"
          completion(data)
      }

      How would you call fetchData using trailing closure syntax to print the data received?
      hard
      A. fetchData() { data in print(data) }
      B. fetchData(completion: { data in print(data) })
      C. fetchData { data in print(data) }
      D. fetchData { print(data) }

      Solution

      1. Step 1: Understand trailing closure syntax for single closure argument

        When the last argument is a closure, you can write it outside parentheses without empty parentheses.
      2. Step 2: Check each option for correct syntax and usage

        fetchData { data in print(data) } correctly calls fetchData with trailing closure and closure parameter 'data' used inside print.
      3. Final Answer:

        fetchData { data in print(data) } -> Option C
      4. Quick Check:

        Trailing closure with parameter = fetchData { data in print(data) } [OK]
      Hint: Write closure after function name without parentheses for trailing closure [OK]
      Common Mistakes:
      • Including empty parentheses before trailing closure
      • Omitting closure parameter when needed
      • Trying to use closure inside parentheses and trailing closure simultaneously
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard