gpt4 book ai didi

swift - 禁止在 Swift 中设置特定值

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:57 26 4
gpt4 key购买 nike

我想“禁止”将诸如 0 之类的值设置为 var(float 或 int),以确保它可以是一个适当的除数。在 Swift 中实现这一目标的正确方法是什么?我能想到的一种方法是将 fatalError() 放在 didSet 方法中,但我想 Swift 可能有更好的方法来处理它。

最佳答案

您有几个选择,但我认为这归结为您的偏好以及您的变量将如何使用。

如果将

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
}

关于swift - 禁止在 Swift 中设置特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53090306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com