Challenge - 5 Problems
Swift Computed Properties Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this Swift code using computed properties?
Consider the following Swift struct with a computed property. What will be printed when the code runs?
Swift
struct Rectangle { var width: Double var height: Double var area: Double { return width * height } } let rect = Rectangle(width: 3, height: 4) print(rect.area)
Attempts:
2 left
💡 Hint
Remember that computed properties calculate their value when accessed.
✗ Incorrect
The computed property 'area' multiplies width and height. For width 3 and height 4, area is 12.0.
❓ Predict Output
intermediate2:00remaining
What value does the computed property return after mutation?
Given this Swift class with a computed property, what will be printed after changing the base value?
Swift
class Circle { var radius: Double var diameter: Double { get { return radius * 2 } set { radius = newValue / 2 } } init(radius: Double) { self.radius = radius } } let c = Circle(radius: 5) c.diameter = 20 print(c.radius)
Attempts:
2 left
💡 Hint
Setting diameter changes radius because of the setter.
✗ Incorrect
The setter divides the new diameter by 2 to update radius. Setting diameter to 20 sets radius to 10.
❓ Predict Output
advanced2:00remaining
What is the output of this Swift code with a computed property using a private stored property?
Analyze the following Swift struct. What will be printed when accessing the computed property 'fullName'?
Swift
struct Person { private var firstName: String private var lastName: String var fullName: String { return "\(firstName) \(lastName)" } init(firstName: String, lastName: String) { self.firstName = firstName self.lastName = lastName } } let p = Person(firstName: "Jane", lastName: "Doe") print(p.fullName)
Attempts:
2 left
💡 Hint
Computed properties can access private stored properties within the same struct.
✗ Incorrect
The computed property 'fullName' returns the concatenation of firstName and lastName, which are accessible inside the struct.
❓ Predict Output
advanced2:00remaining
What error does this Swift code produce when using a computed property incorrectly?
Examine the following Swift code. What error will occur when compiling?
Swift
struct Square { var side: Double var area: Double { side * side } var perimeter: Double { return side * 4 } var invalidComputed: Double { side * 2 side * 2 } }
Attempts:
2 left
💡 Hint
Computed properties without explicit return require single expression bodies.
✗ Incorrect
The computed property 'invalidComputed' lacks the 'return' keyword and uses a multi-line body without it, causing a compile error.
🧠 Conceptual
expert2:00remaining
How many times is the computed property 'value' accessed in this Swift code?
Consider this Swift struct with a computed property. How many times will the computed property 'value' be evaluated during the execution of the code below?
Swift
struct Counter { var base: Int var value: Int { print("Computing value") return base * 2 } } let c = Counter(base: 3) let sum = c.value + c.value + c.value print(sum)
Attempts:
2 left
💡 Hint
Each access to a computed property runs its code anew unless cached.
✗ Incorrect
The computed property 'value' is accessed three times in the sum expression, so 'Computing value' prints three times.