Bird
Raised Fist0
Swiftprogramming~10 mins

Adding methods in Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a method named greet inside the struct.

Swift
struct Person {
    func [1]() {
        print("Hello!")
    }
}
Drag options to blanks, or click blank then click option'
Awelcome
Bgreet
Chello
DsayHello
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different method name than 'greet'.
2fill in blank
medium

Complete the code to call the greet method on the person instance.

Swift
let person = Person()
person.[1]()
Drag options to blanks, or click blank then click option'
AsayHello
Bwelcome
Chello
Dgreet
Attempts:
3 left
💡 Hint
Common Mistakes
Calling a method name that does not exist.
3fill in blank
hard

Fix the error by completing the method signature to accept a name parameter of type String.

Swift
struct Person {
    func greet([1] name: String) {
        print("Hello, \(name)!")
    }
}
Drag options to blanks, or click blank then click option'
Afor
Bto
Cwith
Dat
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect external parameter names like 'with' or 'to'.
4fill in blank
hard

Fill both blanks to define a method that returns a greeting string and call it.

Swift
struct Person {
    func greet() -> [1] {
        return "Hello!"
    }
}

let person = Person()
let message = person.[2]()
Drag options to blanks, or click blank then click option'
AString
Bgreet
CInt
DsayHello
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong return type or calling a method that does not exist.
5fill in blank
hard

Fill all three blanks to define a method with a parameter and call it with an argument.

Swift
struct Person {
    func greet([1] name: [2]) -> String {
        return "Hello, \(name)!"
    }
}

let person = Person()
let message = person.greet([3]: "Alice")
Drag options to blanks, or click blank then click option'
Afor
BString
C"Alice"
Dto
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong parameter names, types, or argument values.

Practice

(1/5)
1.

What is the main purpose of adding methods to a struct or class in Swift?

easy
A. To store more data inside the type
B. To make the type immutable
C. To change the type to a different type
D. To add actions or behaviors related to the data inside the type

Solution

  1. Step 1: Understand what methods do

    Methods are functions inside a struct or class that perform actions related to that type's data.
  2. Step 2: Identify the purpose of methods

    Methods organize code by grouping behaviors with the data they act on, making code reusable and clear.
  3. Final Answer:

    To add actions or behaviors related to the data inside the type -> Option D
  4. Quick Check:

    Methods = actions on data [OK]
Hint: Methods are functions inside types that do things with data [OK]
Common Mistakes:
  • Thinking methods only store data
  • Confusing methods with properties
  • Believing methods change the type itself
2.

Which of the following is the correct way to define a method named greet inside a Swift struct?

struct Person {
    // Your method here
}
easy
A. function greet() { print("Hello") }
B. method greet() { print("Hello") }
C. func greet() { print("Hello") }
D. def greet() { print("Hello") }

Solution

  1. Step 1: Recall Swift method syntax

    In Swift, methods inside structs or classes use the keyword func followed by the method name and parentheses.
  2. Step 2: Check each option

    func greet() { print("Hello") } uses func greet(), which is correct. The other options use incorrect keywords not valid in Swift.
  3. Final Answer:

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

    Swift methods start with func [OK]
Hint: Use 'func' keyword to define methods in Swift [OK]
Common Mistakes:
  • Using 'method', 'def', or 'function' instead of 'func'
  • Missing parentheses after method name
  • Not placing method inside struct or class
3.

What will be the output of the following Swift code?

struct Counter {
    var count = 0
    mutating func increment() {
        count += 1
    }
}

var c = Counter()
c.increment()
print(c.count)
medium
A. 1
B. Error: Cannot mutate property in method
C. 0
D. nil

Solution

  1. Step 1: Understand the struct and method

    The struct has a variable count starting at 0. The method increment adds 1 to count. It is marked mutating to allow changing the struct's data.
  2. Step 2: Trace the code execution

    We create c as a Counter instance with count = 0. Calling c.increment() increases count to 1. Printing c.count outputs 1.
  3. Final Answer:

    1 -> Option A
  4. Quick Check:

    Mutating method changes count from 0 to 1 [OK]
Hint: Mutating methods can change struct properties [OK]
Common Mistakes:
  • Forgetting 'mutating' keyword causes error
  • Expecting count to stay 0 after increment
  • Confusing structs with classes (no mutating needed)
4.

Identify the error in this Swift code and choose the fix:

struct BankAccount {
    var balance: Double = 0.0
    func deposit(amount: Double) {
        balance += amount
    }
}
medium
A. Add mutating before func deposit
B. Change var balance to let balance
C. Remove amount parameter from deposit method
D. Change func to static func

Solution

  1. Step 1: Understand the error cause

    The method deposit tries to change balance, a property of the struct. In Swift, methods that modify struct properties must be marked mutating.
  2. Step 2: Identify the fix

    Adding mutating before func deposit allows the method to modify balance. Other options do not fix the mutation error.
  3. Final Answer:

    Add mutating before func deposit -> Option A
  4. Quick Check:

    Mutating keyword needed to change struct properties [OK]
Hint: Use 'mutating' for methods that change struct properties [OK]
Common Mistakes:
  • Omitting 'mutating' keyword causes compile error
  • Changing var to let prevents modification
  • Misusing static keyword for instance methods
5.

You want to add a method reset() to this Swift struct that sets count back to zero. Which is the correct way to do this?

struct Counter {
    var count: Int
    // Add reset method here
}
hard
A. func reset() { count = 0 }
B. mutating func reset() { count = 0 }
C. static func reset() { count = 0 }
D. func reset() -> Int { return 0 }

Solution

  1. Step 1: Understand method purpose and struct rules

    The method reset() must change the property count. Since Counter is a struct, methods that modify properties must be marked mutating.
  2. Step 2: Evaluate options

    mutating func reset() { count = 0 } correctly uses mutating func reset() and sets count = 0. func reset() { count = 0 } lacks mutating, causing error. static func reset() { count = 0 } is static and cannot access instance property. func reset() -> Int { return 0 } returns 0 but does not change count.
  3. Final Answer:

    mutating func reset() { count = 0 } -> Option B
  4. Quick Check:

    Mutating method needed to reset struct property [OK]
Hint: Mutating methods change struct properties like resetting count [OK]
Common Mistakes:
  • Forgetting 'mutating' keyword causes error
  • Using static method cannot access instance data
  • Returning value instead of changing property
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