美文网首页
尽可能地使用?声明的Optional

尽可能地使用?声明的Optional

作者: 年轻Jiayu | 来源:发表于2016-04-29 12:57 被阅读0次

很多时候我会厌恶Optional<?>,因为它用起来实在太麻烦了。每次用的时候都需要判断或者解包,但是很多时候,你的一个不经意,会让程序奔溃,当然很多时候是因为隐式解析引起的,来看一下这一段简单的代码:

class Worker {
    var codeValue: String!
    
    func code() {
        print(codeValue)
    }
}
var worker: Worker?
worker?.code()

这段代码在执行的时候不会奔溃,虽然内部的code函数的使用肯定会让程序导致奔溃,但是外面我定义了一个Optional<?>的Worker类型,在运行的时候,首先判断的是worker这个实例,因为这个实例为nil,所以不会执行以后的code函数了,也就不会产生奔溃了,当然这是使用Optional<?>的好处。

但是也有例外的时候,很多时候Debug时使用Optional<!>让程序奔溃能让你很快知道哪里出错,就像delegate,如果你设置的是!,而在对应协议函数执行时,发现程序奔溃了,你就能马上明白是不是忘记在构造之前将上个控制器设置成delegate了,大大提升了你检查内部错误的效率。

相关文章

  • 尽可能地使用?声明的Optional

    很多时候我会厌恶Optional,因为它用起来实在太麻烦了。每次用的时候都需要判断或者解包,但是很多时候,你...

  • 用Optional取代null

    创建Optional对象 Optional.empty():声明一个空Optional Optional.of()...

  • Java8学习笔记之应用Optional的几种模式

    1、创建Optional对象 1)声明一个空的Optional 可以通过静态工厂方法Optional.empty,...

  • swift中的? 与!使用场景

    ! 使用场景 1.强制对Optional值进行拆包(unwrap)2.声明Implicitly Unwrapped...

  • java8的流库(二)Optional类型

    大纲: 如何使用Optional的值 不适合使用Optional值的方式 创建Optional的值 用flatMa...

  • 第四周Swift总结

    day one 依赖倒转原则(面向协议编程) 声明变量的类型时应该尽可能使用协议类型 声明方法参数类型时应该尽可能...

  • Java8-Optional

    Optional java8添加的容器对象,在一些场景下避免使用null检查而设定的类,尽可能避免的NullPoi...

  • SWIFT

    在 swift 中'?'相当于可选类型, optional; '?'的使用场景:当我们声明变量的时候,且又不想为变...

  • Boost.Optional的用法

    不使用boost::optional时的方法: 使用boost::optional时的方法: 参考文章 https...

  • iOS-OC中nullable、_Nullable、__null

    在 Swift 中,我们会使用 ? 和 ! 去显式声明一个对象或者方法的参数是optional 还是 non-op...

网友评论

      本文标题:尽可能地使用?声明的Optional

      本文链接:https://www.haomeiwen.com/subject/xuohrttx.html