zoukankan      html  css  js  c++  java
  • swift3.0中?和!的学习理解心得

      我们在学习swift的时候经常会有各种的?和!  看了很多帖子并且使用

    其实 我们的?和!的区别和使用大概就是:--------- 定义可选项使用“?“  而 强行解包的时候用“!”,准备计算。

    (1)原始的可选项定义:none没有值,或者some某一类值  let x:Optional = 10  

    (2)简单的可选项定义:用“?” 意思是可能没有值,也可能有一个值 let y:Int? = 40 

    上面两个输出的值print(x) print(y)都是打印出这样Optional(10) 等等

    (3)如果print(x+y)那么不同类型之间不可以直接运算 如果nil不是任何数据类型 不能参与计算

    (4)上面的第(2)条里的 如果赋值为nil那么在打印print(y)的时候会报错 found nil……意思是解包时候发现了nil值

    (5)程序员可以在解包的时候y!添加这个符号 意思是从可选值中强行获取对应的非空值,如果真的是nil 那么就会崩溃 

    程序少用!并且程序员要对!负责 因为一旦用了!那么运行的时候报错直接崩溃。而第(4)条的是编译时候就提示有错

    另外还有一点是 用!和?的好处是程序不会在因为nil值得错误像oc里一样直接崩溃在main函数中了 这点是oc里的缺憾处。现在swift加以改进 从而在我们调试的时候xcode编译就不会通过 就会提示为空  如果我们非要加上!那么就会在编译通过但是运行报错

    let的可选值没有默认值  var的可选值默认为nil

  • 相关阅读:
    如何打开肉鸡的3389端口(xp的)
    XP鲜为人知的实用技巧(一)
    利用Ms08067工具进行溢出攻击
    教你建一个别人看不到打不开的文件夹
    在IE上显示自己的名字
    QQ使用的七大非常规秘籍
    第五篇:Python函数基础篇
    Centos7之Systemd(Service文件)详解
    Linux GCC make文件的写法3
    DSP/BIOS学习笔记——2.SWI
  • 原文地址:https://www.cnblogs.com/wangxiaoqi/p/6559217.html
Copyright © 2011-2022 走看看