У вас есть несколько вариантов, но я думаю, что все сводится к вашим предпочтениям и способам использования вашей переменной.
fatalError()
будет уместно, если его установка на 0
будет ошибкой программиста, это должно быть обнаружено при тестировании вашего приложения. Лично я бы этого избежал.
Вы также можете использовать didSet
, чтобы изменить значение на ненулевое значение, например 1
.
Другой вариант - использовать функцию для установки значения и заставить эту функцию выдавать ошибку при передаче 0
, чтобы код, который устанавливает значение, мог реагировать на это и предупреждать пользователя.
Вот как будет реализован последний вариант, который я бы сделал:
enum InputError: Error {
case divisorCantBeZero
}
private var _divisor: CGFloat = 1
var divisor: CGFloat {
return _divisor
}
func setDivisor(_ newValue: CGFloat) throws {
guard newValue != 0 else {
throw InputError.divisorCantBeZero
}
_divisor = newValue
}