In Swift, I\'m trying to do the following:
struct Foo {
var bar = 1
func baz() {
bar = 2
}
}
Xcode reports the error <
If you want to modify the properties of the struct, mark the function as mutating.
struct Foo {
var bar = 1
mutating func baz() {
bar = 2
}
}
The reason that you cannot assign to a struct's variable from within the struct itself is because instance methods of a struct cannot mutate instance variables. For this to work you need to add the keyword mutating before the declaration of the function.
This will give you the following code:
struct Foo {
var bar = 1
mutating func baz() {
bar = 2
}
}
The function baz() will now be able to mutate the instance variables of the struct.