2.可选项

//最常见的错误
//Unexpectedly found nil while unwrapping an Optional value
//在解包的时候发现了nil值
/*
定义 可选项使用: ?
解包使用: !,准备计算
*/

func demo() {
    //********定义可选项的2种方式:*************
    //1.原始的可选项定义
    //none:没有值  some 某一类值
    let x : Optional = 10
    
    //2.简单的定义
    let y : Int? = 20 //nil //40
    
    //输出结果 Optional(10),提示这是一个可选项
    print(x)
    
    // Constant 'y' used before being initialized
    //常量y使用之前,必须初始化
    print(y)
    
    //1> 不同类型之间的值不能直接运算,如果没有值是nil(nil 不是任何数据类型,不能参与计算)
    //print(x + y)
    
    //2> "!" 强行解包,从可选值中强行获取对应的非空值,如果真的是nil,就会崩溃!
    //程序员必须对每一个“!”负责
    //程序中要少用“!”
    print(x! + y!)
}

func demo1() {
    //1> 定义y,没有初始化
    let y: Int?
    
    //2> 给常量设置数值,初始化的工作只能做一次
    y = 20;
    
    //再次修改常量会报错
    //  y = 30
    
    print(y)
    
    //****** var 的可选值默认为 nil
    //****** let 的可选值没有默认值
    var x: Int?
    
    //打印结果为nil
    print(x)
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我以前做的swift笔记, 之前都是整理在onenote上, 最近想到整理出博客. 也方便自己查找, 可以当做自己...
    sunmumu1222阅读 1,139评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139
  • 对各种值为"空"的情况处理不当,几乎是所有Bug的来源。 在我们的例子里,尽管tmp的值是nil,但调用tmp的r...
    AKyS佐毅阅读 13,595评论 1 13
  • Optional 可选项 文章原创。未经允许不得转载!写的可以给个赞,博主会发出更多关于Swi...
    洛斯也阅读 2,394评论 0 0
  • 如果世上有一条绳索 能缚住我的双足 那就是你漆黑的长发 如果世上有一只樊笼能把我困住 那是你的目光 我愿你是我的镣...
    爱梦中的紫桑葚之稻花香阅读 2,415评论 0 0

友情链接更多精彩内容