我应该选择期权还是隐式解包期权

Fro*_*art 1 optional ios swift

假设您需要编写将闭包作为参数之一的函数来将其称为回调.该函数的用户应该能够传递nil而不是关闭.在这种情况下,您会使用期权还是隐式解包期权?

提前致谢.

Ant*_*nio 5

作为Nate答案的补充(这是解决方案),我的建议是永远不要使用隐式解包的选项,除非你有充分的理由.延迟初始化是一个很好的理由.

  • 如果您不确定,请不要使用它

  • 如果在初始化后的生命周期中可选项可以为nil,请不要使用它

  • 如果您想避免输入额外内容?,请不要使用它

  • 如果第三方函数,方法或闭包传递了一个可选项,请不要将其转换为隐式解包

  • 如果第三方函数,方法或闭包提供了一个隐式展开的...自己判断是否明确检查不是nil(即是否相信该选项将永远不是nil)

  • 更一般地说,如果你对隐式展开的方式有疑问,那么总是要总是避免