Да, ваш код меняет один и тот же экземпляр, и ваш код действует последовательно на ваш экземпляр.Я посмотрю, смогу ли я объяснить:
Здесь мы можем увидеть каждую часть вашего кода
1.
var ovenLight = TriStateSwitch.low
Итак, мы .low
2.
ovenLight.next()
Если мы .low (которым мы были), мы попадаем в этот случай:
case .low:
self = .high
, поэтому мы высоки
3.
ovenLight.next()
Если мы .высокие (какими мы были), мы попадаем в этот случай:
case .high:
self = .off
, поэтому мы .off
Имеет ли это смысл?