Bird
Raised Fist0
Swiftprogramming~5 mins

In-out parameters for mutation in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an in-out parameter in Swift?
An in-out parameter allows a function to modify a variable passed to it, so the changes persist outside the function.
Click to reveal answer
beginner
How do you declare an in-out parameter in a Swift function?
Use the inout keyword before the parameter type in the function definition.
Click to reveal answer
beginner
How do you pass a variable as an in-out argument when calling a Swift function?
Use the ampersand & before the variable name to pass it as an in-out argument.
Click to reveal answer
intermediate
Why can't you pass a constant or a literal as an in-out argument?
Because in-out parameters require the ability to modify the variable, constants and literals cannot be changed.
Click to reveal answer
beginner
What happens if you forget to use & when passing an in-out argument?
The Swift compiler will give an error because it expects an explicit indication that the variable can be modified.
Click to reveal answer
Which keyword is used to declare an in-out parameter in Swift?
Ainout
Bmutate
Cvar
Dref
How do you pass a variable as an in-out argument when calling a function?
AWith parentheses around the variable
BWith an asterisk (*) before the variable
CJust the variable name
DWith an ampersand (&) before the variable
Can you pass a constant as an in-out argument?
AYes, always
BOnly if the function returns a value
CNo, because it cannot be modified
DYes, but only if marked with <code>let</code>
What is the main purpose of in-out parameters?
ATo allow a function to modify the caller's variable
BTo return multiple values from a function
CTo make parameters optional
DTo improve performance by copying variables
What error occurs if you forget the & when passing an in-out argument?
ASyntax error
BCompiler error
CRuntime crash
DNo error, it works fine
Explain how in-out parameters work in Swift and why they are useful.
Think about how a function can change a variable outside its own scope.
You got /4 concepts.
    Describe the syntax for declaring and using an in-out parameter in a Swift function.
    Focus on the keywords and symbols needed.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What does the inout keyword do in Swift functions?

      easy
      A. Allows the function to modify the original variable passed in.
      B. Prevents the function from changing the variable.
      C. Creates a copy of the variable that cannot be changed.
      D. Makes the variable constant inside the function.

      Solution

      1. Step 1: Understand the role of inout

        The inout keyword allows a function to receive a variable and modify it directly.
      2. Step 2: Effect on the original variable

        Changes made inside the function affect the original variable outside the function.
      3. Final Answer:

        Allows the function to modify the original variable passed in. -> Option A
      4. Quick Check:

        inout means modify original variable [OK]
      Hint: Remember: inout means function can change your variable [OK]
      Common Mistakes:
      • Thinking inout creates a copy instead of modifying original
      • Forgetting to use & when calling the function
      • Assuming variables are constant inside the function
      2.

      Which of the following is the correct way to declare a function with an inout parameter in Swift?

      func updateValue(____ value: inout Int) { value += 10 }
      easy
      A. func updateValue(inout value: Int)
      B. func updateValue(value: inout Int)
      C. func updateValue(value inout Int)
      D. func updateValue(inout value in Int)

      Solution

      1. Step 1: Recall Swift syntax for inout parameters

        The correct syntax places inout before the type, after the parameter name: paramName: inout Type.
      2. Step 2: Match the options

        func updateValue(value: inout Int) matches this syntax exactly: value: inout Int.
      3. Final Answer:

        func updateValue(value: inout Int) -> Option B
      4. Quick Check:

        Parameter syntax = name: inout Type [OK]
      Hint: Remember: inout goes after parameter name, before type [OK]
      Common Mistakes:
      • Placing inout before parameter name
      • Swapping parameter name and type order
      • Using invalid syntax like 'inout value in Int'
      3.

      What will be the output of this Swift code?

      func doubleValue(_ number: inout Int) {
          number *= 2
      }
      
      var myNum = 5
      doubleValue(&myNum)
      print(myNum)
      medium
      A. 5
      B. Error: missing & in function call
      C. 10
      D. Error: cannot modify constant

      Solution

      1. Step 1: Understand the function behavior

        The function doubles the value of the passed variable by multiplying it by 2.
      2. Step 2: Trace the code execution

        Variable myNum starts at 5, is passed with & to allow mutation, so after the function call it becomes 10.
      3. Final Answer:

        10 -> Option C
      4. Quick Check:

        In-out parameter doubles 5 to 10 [OK]
      Hint: Use & when calling to let function change variable [OK]
      Common Mistakes:
      • Forgetting & when calling function
      • Expecting original value unchanged
      • Confusing parameter passing with copy
      4.

      Identify the error in this Swift code snippet:

      func increment(_ value: inout Int) {
          value += 1
      }
      
      let number = 10
      increment(&number)
      medium
      A. Cannot pass a constant as an inout parameter.
      B. Missing & when calling the function.
      C. Function parameter should not be inout.
      D. Function must return the new value.

      Solution

      1. Step 1: Check variable mutability

        The variable number is declared with let, making it a constant.
      2. Step 2: Understand inout parameter requirements

        Inout parameters require a variable that can be modified, so constants cannot be passed.
      3. Final Answer:

        Cannot pass a constant as an inout parameter. -> Option A
      4. Quick Check:

        Inout needs variable, not constant [OK]
      Hint: Only variables (var), not constants (let), can be inout [OK]
      Common Mistakes:
      • Trying to pass constants as inout parameters
      • Forgetting & when calling function
      • Thinking function must return value when using inout
      5.

      You want to write a function swapValues that swaps two integers using inout parameters. Which of the following implementations correctly swaps the values?

      func swapValues(_ a: inout Int, _ b: inout Int) {
          ____
      }
      hard
      A. let temp = a temp = b b = temp
      B. a = b b = a
      C. a = b b = a - b a = a - b
      D. var temp = a a = b b = temp

      Solution

      1. Step 1: Understand swapping logic

        To swap two values, you need a temporary variable to hold one value while assigning the other.
      2. Step 2: Check each option

        var temp = a a = b b = temp correctly declares a temporary variable with var and swaps values safely. let temp = a temp = b b = temp uses let which is immutable and causes error. a = b b = a overwrites a before assigning b. a = b b = a - b a = a - b uses arithmetic swap but is more complex and not recommended here.
      3. Final Answer:

        var temp = a a = b b = temp -> Option D
      4. Quick Check:

        Use temp variable with var to swap values [OK]
      Hint: Use a temporary variable declared with var to swap values [OK]
      Common Mistakes:
      • Using let for temporary variable causing immutability error
      • Overwriting one variable before saving its value
      • Trying to swap without a temporary variable incorrectly
      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