假设我有返回可选的函数.如果成功则错误和价值为零:
func foo() -> Bar? { ... }
let fooResultOpt = foo() if let fooResult = fooResultOpt { // continue correct operations here } else { // handle error }
>最后执行错误处理,很容易错过一些东西.当错误处理代码跟随函数调用时,它会好得多.
>正确的操作代码缩进一级.如果我们有另一个函数要调用,我们必须再缩进一次.
使用C,通常可以写这样的东西:
Bar *fooResult = foo(); if (fooResult == null) { // handle error and return } // continue correct operations here
我找到了两种方法来实现与Swift类似的代码风格,但我也不喜欢.
let fooResultOpt = foo() if fooResult == nil { // handle error and return } // use fooResultOpt! from here let fooResult = fooResultOpt! // or define another variable
如果我写“!”在任何地方,它只是看起来不好我的口味.我可以引入另一个变量,但这看起来也不好看.理想情况下,我希望看到以下内容:
if !let fooResult = foo() { // handle error and return } // fooResult has Bar type and can be used in the top level
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。