Fill the blank
Fill the blank so @Clamped(0...10) var volume = 15 stores 10.
@propertyWrapper
struct Clamped {
private var value: Int
let range: ClosedRange<Int>
var ____: Int {
get { value }
set { value = min(max(newValue, range.lowerBound), range.upperBound) }
}
init(wrappedValue: Int, _ range: ClosedRange<Int>) {
self.range = range
value = min(max(wrappedValue, range.lowerBound), range.upperBound)
}
}Hint 1 of 1
Which property does @propertyWrapper require?
Choose an answer, then open Show answer below to check it.
Show answer
Answer: A wrappedValue
Correct. It is the required property every wrapper provides.
Why not the others?
- B projectedValue. That is the optional $ projection, not the main value.
- C value.
valueis already the private storage. - D storage. The compiler looks for a property named wrappedValue.