swift3.0 unexpectedly found nil while unwrapping an Optional value的解释 && Swift中Optional

前端之家收集整理的这篇文章主要介绍了swift3.0 unexpectedly found nil while unwrapping an Optional value的解释 && Swift中Optional前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先来说一些Swift中的Optional,译为可选项,他是一个枚举类型,有以下两个值


1. none:表示没有值
2. some:某一类值

原始可选项的定义:

      • 1
        • 1
        let x: Optional = 10

      简单的定义:

      1. 1
      2. 2
          • 1
          • 2
          //'?'用来定义 y 是一个可选的 Int 类型,可能没有值,也可能是一个整数
        • ley y: Int? = 20

        此时打印 x 和 y

        1. 1
        2. 2
        3. 3
        4. 4
        5. 5
            • 1
            • 2
            • 3
            • 4
            • 5
            print(x)
          • print(y)
          • //控制台显示如下
          • Optional(10)
          • Optional(20)

          此时我们打印二者求和,编译器给出警告

          根据编译器的提示,修改如下

          1. 1
          2. 2
          3. print(x! + y!)
          4. //打印结果为:30,且没有Optional关键字

          此时我们回头把x的重新定义,其他代码不变,运行工程

          1. let x: Int? = nil

          此时程序崩溃到了print位置

          同时控制台打印,意思是在解包的时候发现了nil值

          “fatal error: unexpectedly found nil while unwrapping an Optional value”

          Swift中,’!’:强行解包,从可选值中强行获取对应的非空值,如果真的遇见nil,程序直接崩溃.就是说不同类型之间的值不能直接运算!如果没有值是nil(Optional枚举中的none),nil不是任何数据类型,不能参与计算

          转自:http://blog.csdn.net/feng2qing/article/details/53453135

          猜你在找的Swift相关文章