Optional 可选值

  1. 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil

  2. 定义变量时,在类型后面添加一个 ?,表示该变量是可选的

  3. 变量可选项的默认值是 nil

  4. 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值

 //: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算let num: Int? = 10

  • 如果 Optional 值是 nil,不允许参与计算

  • 只有解包(unwrap)后才能参与计算

  • 在变量后添加一个 !,可以强行解包

可选项:一个变量,可以为本身的类型,也可以为 nil


// * 可选项不能直接计算

// !  `强行解包 unwrapping` - 程序员承诺 y 一定有值,如果没有,崩给我看!

// unexpectedly found nil while unwrapping an Optional value

// 每次写 ! 的时候,都需要程序员思考,是不是有可能为 nil!

    func demo1() {
        
        // 定义变量/常量如果需要指定类型 : 类型 的方式指定准确的类型
        let x: Double = 20
        print(x + 1.5)
        
        // 可选项 使用 ? 定义
        // y 可以是一个整数/也可以是 nil,如果是变量,默认是 nil
        // 注意:可选项在输出的时候,会提示 `Optional`
        var y: Int? //= 10
        
        print(y)
        
        print(y! + 20)
    }

1. 明确可选项的概念!

2. 实际开发中,借助 Xcode 智能提示,帮助修改!

3. 每次修改,都要思考为什么!

    func demo2() {
        let urlString = "http://www.baidu.com/中文"
        // 注意:构造函数如果有 `?` 表示不一定能够创建出对象
        let url = NSURL(string: urlString)
        
        print(url)
        
        // 注意:如果参数中,没有 ? 表示必须要有值,如果为 nil,就崩!
        if url != nil {
            let request = NSURLRequest(URL: url!)
            
            print(request)
        }
    }


转载于:https://my.oschina.net/TaciturnKnightYQ/blog/538567

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值