美文网首页
002-可选项解包

002-可选项解包

作者: 紫荆秋雪_文 | 来源:发表于2016-11-13 19:38 被阅读12次

1、可选项强行解包

使用!来给可选项解包

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        demo(x: 10, y: 20)
    }

    func demo(x:Int?, y:Int?) {
        //直接进行强行解包
        print(x! + y!)//输出结果:30
    }

2、但是这样直接使用!来强行解包是有风险得:如果传入一个空值,程序就会崩溃

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        demo(x: 10, y: nil)
    }

    func demo(x:Int?, y:Int?) {
        //直接进行强行解包
        print(x! + y!)//因为y:nil,因为在swift中不同的数据类型是不能进行计算的所以会崩溃
    }

3、解决强行解包带来的风险,使用??来解决可选项的解包

??是一个简单的 三目运算。如果有值,使用值,如果没有值,使用 ?? 后面的内容替代

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        demo1(x: 10, y: nil)
    }
    
    func demo1(x:Int?, y:Int?) {
        
        print((x ?? 0) + (y ?? 0))
        //输出结果:10
    }

小结:使用??就可以解决强行解包带来的风险

相关文章

  • 002-可选项解包

    1、可选项强行解包 使用!来给可选项解包 2、但是这样直接使用!来强行解包是有风险得:如果传入一个空值,程序就会崩...

  • swift语法记录之可选项

    可选项(optionnal) 强制解包! 可选项可以理解为一个盒子,强制解包只是把内容取出来,并不会改变可选项的类...

  • 05-可选项

    可选项(Optional) 强制解包(Forced Unwrapping) 判断可选项是否包含值 可选项绑定(Op...

  • swift中的可选项+强制解包+可选项绑定+空合并运算符

    可选项 使用“?”后,值可以为nil 强制解包 确定有值直接使用“!” 可选项绑定 有值就直接解包并赋值给一个变量...

  • swift学习(三)

    rawvalue取得是原始值 可选项: 若要取出可选项中的值。如下: 必须强制解包,即age!

  • Optional 可选类型

    理解可选项的概念 要么有值,要么为 nil 知道可选项的规则 参与计算前需要解包 知道两个符号 ? 定义可选项 !...

  • Swift 之可选项

    1 掌握 理解可选项的概念要么有值,要么为 nil 知道可选项的规则参与计算前需要解包 知道两个符号 ?定义可选项...

  • ★ iOS高级:Swift入门精讲③ 01 swift编程-08

    前言:本篇仅为视频学习笔记 可选项绑定★ 可以使用可选项绑定来判断可选项是否包含值如果包含值就自动解包,把值赋给一...

  • Swift 5 可选类型(Optionals)

    可选类型(Optionals) 可选项: 允许将其设置为nil 强制解包 可选项绑定: 通过把值赋给一个临时的常量...

  • Swift 5基础语法要点整理—可选项

    可选项 可选项,一般也叫可选类型,它允许将值设置为nil 在类型名称后面加个问号?来定义一个可选项 1、强制解包 ...

网友评论

      本文标题:002-可选项解包

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