Bird
Raised Fist0
Swiftprogramming~20 mins

Struct declaration syntax in Swift - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Swift Struct Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple struct instance
What is the output of this Swift code when run?
Swift
struct Person {
    var name: String
    var age: Int
}

let p = Person(name: "Anna", age: 30)
print(p.name)
AAnna
B30
CPerson(name: "Anna", age: 30)
DError: Missing initializer
Attempts:
2 left
💡 Hint
Look at what property is printed from the struct instance.
❓ Predict Output
intermediate
2:00remaining
Value of a struct property after modification
What is the value of the property 'age' after running this Swift code?
Swift
struct Animal {
    var species: String
    var age: Int
}

var dog = Animal(species: "Dog", age: 5)
dog.age = 6
print(dog.age)
A6
B5
CError: Cannot assign to property
D0
Attempts:
2 left
💡 Hint
Check if the struct instance is declared as variable or constant.
❓ Predict Output
advanced
2:00remaining
Output of struct with method
What does this Swift code print?
Swift
struct Rectangle {
    var width: Int
    var height: Int
    func area() -> Int {
        return width * height
    }
}

let rect = Rectangle(width: 3, height: 4)
print(rect.area())
A7
BError: Missing return statement
C12
D0
Attempts:
2 left
💡 Hint
Multiply width and height to get the area.
❓ Predict Output
advanced
2:00remaining
Error raised by incorrect struct declaration
What error does this Swift code produce?
Swift
struct Car {
    var model: String
    var year: Int

    func description() -> String {
        return "Model: \(model), Year: \(year)"
    }
}

let myCar = Car(model: "Tesla")
ANo error, compiles and runs fine
BError: Missing argument for parameter 'year' in call
CError: Cannot assign to property 'model' in initializer
DError: Method description missing return type
Attempts:
2 left
💡 Hint
Check if all stored properties have values after init.
🧠 Conceptual
expert
2:00remaining
Number of items in a struct array after filtering
Given this Swift code, how many items remain in the 'youngPeople' array after filtering?
Swift
struct Person {
    var name: String
    var age: Int
}

let people = [
    Person(name: "John", age: 20),
    Person(name: "Jane", age: 17),
    Person(name: "Bob", age: 25),
    Person(name: "Alice", age: 16)
]

let youngPeople = people.filter { $0.age < 18 }
print(youngPeople.count)
A3
B4
C1
D2
Attempts:
2 left
💡 Hint
Count how many people have age less than 18.

Practice

(1/5)
1. What keyword is used to declare a struct in Swift?
easy
A. struct
B. class
C. function
D. var

Solution

  1. Step 1: Identify the keyword for struct declaration

    In Swift, the keyword struct is used to declare a struct type.
  2. Step 2: Differentiate from other keywords

    class declares classes, function is not a Swift keyword, and var declares variables.
  3. Final Answer:

    struct -> Option A
  4. Quick Check:

    Keyword for struct declaration = struct [OK]
Hint: Remember: struct keyword starts struct declarations [OK]
Common Mistakes:
  • Using class instead of struct
  • Confusing var with struct
  • Trying function keyword
  • Omitting the keyword
2. Which of the following is the correct syntax to declare a struct named Person with a property name of type String?
easy
A. struct Person = { var name: String }
B. struct Person (var name: String)
C. struct Person { var name: String }
D. struct Person: var name String

Solution

  1. Step 1: Check struct declaration syntax

    Structs use curly braces {} to enclose properties. Properties are declared with var or let inside braces.
  2. Step 2: Validate each option

    struct Person { var name: String } uses correct syntax: struct Person { var name: String }. Others misuse parentheses, equal sign, or colons incorrectly.
  3. Final Answer:

    struct Person { var name: String } -> Option C
  4. Quick Check:

    Struct syntax uses braces and var for properties [OK]
Hint: Use braces {} and var for properties inside struct [OK]
Common Mistakes:
  • Using parentheses instead of braces
  • Adding equal sign after struct name
  • Incorrect colon usage
  • Missing var keyword
3. What will be the output of this Swift code?
struct Car {
    var model: String
    func description() -> String {
        return "Car model is \(model)"
    }
}
let myCar = Car(model: "Tesla")
print(myCar.description())
medium
A. Car model is Tesla
B. Car model is model
C. Tesla
D. Error: Missing initializer

Solution

  1. Step 1: Understand struct with property and method

    The struct Car has a property model and a method description() that returns a string including the model.
  2. Step 2: Analyze code execution

    Creating myCar with model "Tesla" and calling description() returns "Car model is Tesla" which is printed.
  3. Final Answer:

    Car model is Tesla -> Option A
  4. Quick Check:

    Method returns string with model value [OK]
Hint: Methods can use properties with \(property) inside strings [OK]
Common Mistakes:
  • Expecting property name printed literally
  • Forgetting to call method
  • Assuming error due to no explicit initializer
  • Confusing output with just model string
4. Identify the error in this struct declaration:
struct Book {
    var title String
    var pages: Int
}
medium
A. Missing var keyword before pages
B. Curly braces missing
C. Struct keyword misspelled
D. Missing colon after title

Solution

  1. Step 1: Check property declarations

    Each property must have a colon between name and type, e.g., var title: String.
  2. Step 2: Identify the error

    The line var title String is missing the colon after title. Other parts are correct.
  3. Final Answer:

    Missing colon after title -> Option D
  4. Quick Check:

    Property syntax requires colon between name and type [OK]
Hint: Always put colon between property name and type [OK]
Common Mistakes:
  • Omitting colon between name and type
  • Forgetting var keyword
  • Misspelling struct
  • Missing braces
5. You want to create a struct Rectangle with properties width and height (both Int), and a method area() that returns the area as Int. Which is the correct complete declaration?
hard
A. struct Rectangle { var width Int var height Int func area() -> Int { return width + height } }
B. struct Rectangle { var width: Int var height: Int func area() -> Int { return width * height } }
C. struct Rectangle { var width: Int var height: Int func area() { width * height } }
D. struct Rectangle { width: Int height: Int func area() -> Int { return width * height } }

Solution

  1. Step 1: Check property declarations

    Properties must have var keyword and colon between name and type. struct Rectangle { var width: Int var height: Int func area() -> Int { return width * height } } correctly uses var width: Int and var height: Int.
  2. Step 2: Check method syntax and logic

    Method area() returns Int and correctly calculates width * height. struct Rectangle { var width: Int var height: Int func area() -> Int { return width * height } } matches this.
  3. Final Answer:

    Complete struct with correct properties and method -> Option B
  4. Quick Check:

    Properties need var and colon; method returns correct calculation [OK]
Hint: Use var with colon for properties; return correct calculation [OK]
Common Mistakes:
  • Omitting var keyword
  • Missing colon after property name
  • Method missing return type
  • Incorrect calculation in method
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