gpt4 book ai didi

swift - 我应该如何处理参数验证 Swift

转载 作者:行者123 更新时间:2023-12-02 08:33:35 25 4
gpt4 key购买 nike

我正在学习 Swift。我正在设计一个需要在其初始化程序中进行参数验证的类。如果传递的值超出范围,我应该如何处理?考虑到这一点,我真的很难找到合适的方法来设计它:

  • Swift 没有异常,在有异常和内置 try/catch 机制的语言中,我会抛出异常。
  • Swift 不允许从初始化器返回 nil/null/nothing 来指示错误条件,就像我们在 Objective-C 中可以做的那样。
  • 我觉得将 NSErrorPointer 传递给初始化器很麻烦,而且会给类的使用者带来不必要的负担。

在 Swift 中如何验证初始化器的参数?

最佳答案

现在使用 Swift 2.0 可以抛出异常。例如:

enum Parameter: ErrorType {
case Empty
case Short
}

然后在你的函数中你可以使用 super 有用的守卫来检查收到的东西是否有效并做这样的事情:

guard parameter.characters.count > 0 else { throw Parameter.Empty }

然后你必须捕捉那些异常:

do {
// call your method with try for example something like 'let var = try MyClass("test")'
} catch .Empty {

} catch .Short {

} catch {
print("Something else went wrong!")
}

关于swift - 我应该如何处理参数验证 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24250363/

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