Note, that while you use placeholder values for constants a
and b
you are not able to construct instance of A
with any other values but this placeholders. Write initializer instead. You may write custom method that change any value in struct also:
struct A {
let a: Int
let b: Int
init(a: Int = 2, b: Int = 3) {
self.a = a
self.b = b
}
func changeValues(a: Int? = nil, b: Int? = nil) -> A {
return A(a: a ?? self.a, b: b ?? self.b)
}
}
let state = A()
let state2 = state.changeValues(b: 4)