以下のようなクイズの問題と答え、何問目かを示すquestionNumberを関数で変化させようとしたら
Left side of mutating operator isn't mutable: 'self' is immutable
というエラーが発生した。
import Foundation
struct QuizBrain {
let quiz = [
Question(q: "1 + 2 = 3", a: "True"),
]
var questionNumber = 0
}
func nextQuestion() {
if questionNumber + 1 < quiz.count {
questionNumber += 1
} else {
questionNumber = 0
}
}
}
funcの前にmutatingを書くことでエラーは回避された。
どうやら構造体内の関数ではquestionNumberは不変のため変更できないようだ。