美文网首页
21 可选链

21 可选链

作者: 程序小胖 | 来源:发表于2020-01-13 23:54 被阅读0次

什么是可选链,下面看个简单的例子就明白了

/*
 1. 从可选链中进行取值
 2. 给可选链赋值
 3. 可选链调用方法
 */

// 1, 创建3个类
class Person {
    var name: String = ""
    var dog: Dog? // 对象类型的一般是可选类型,值类型一般赋个初值
}
class Dog {
    var weight: Double = 0.0
    var toy: Toy?
}
class Toy {
    var price: Double = 0.0
    func flying() {
        
    }
}

// 2, 创建类的对象
let p = Person()
p.name = "why"
let d = Dog()
d.weight = 60.0
let t = Toy()
t.price = 100.0

p.dog = d
d.toy = t

// 3, 可选链的使用
// 3.1 取出why的狗的玩具的价格
/*
 该写法非常危险:只要没有给对象赋值,强制解包时就会发生运行时错误
 let dog = p.dog
 let toy = dog!.toy
 let price = toy!.price
 */

/*
 // 该写法非常麻烦
if let dog = p.dog {
    if let toy = dog.toy {
        let price = toy.price
    }
}
 */

// 一般用这种写法   ?.  就是可选链
// 系统会自动判断该可选类型是否有值,
// 如果有值,则解包;如果没值,则赋值nil
// 注意:可选链获取的值,一定是一个可选类型
if let price = p.dog?.toy?.price {
    print(price)
}

// 3.2 给why的狗的玩具赋值一个新的价格
// 如果可选链中有一个可选类型没有值,那么语句直接不执行
p.dog?.toy?.price = 50

// 3.3 可选链调用方法
p.dog?.toy?.flying()

相关文章

  • 21 可选链

    什么是可选链,下面看个简单的例子就明白了

  • Swift-13.可选类型深入探讨

    本章包含内容: 可选类型深入探讨 可选链的介绍 可选链的返回值 可选链调用下标索引 可选链的赋值操作 基于多层链接...

  • swift3语法(十三)

    可选链 定义可选链在取值可能为空的属性、方法、下标后面加上 ? 就表示一个可选链在可选值后面加上 ! 来强制展开,...

  • swift面向对象基础<三>

    接下来就讨论一下可选链,类型属性和类型方法,构造器 1.可选链是用于处理可选类型的属性,方法和下标2.使用可选链代...

  • iOS开发 - 「Swift 学习」Swift 可选链

    Swift 可选链 可选链的定义:可选链是可以请求和调用属性、方法和子脚本的过程,用于请求或调用的目标可能为nil...

  • 十三、可选链、协议、元类型

    可选链 可选链是一个调用和查询可选属性、方法和下标的过程,它可能为 nil 如果可选项是 nil ,属性、方法或者...

  • 【骚操作系列】一、如何通过babel配置使用可选链`?.`和双问

    如何通过babel配置使用可选链?.和双问号?? 什么是可选链 https://developer.mozilla...

  • 可选链

    可选链(Optional Chaining) 如果可选项为nil,调用方法、下标、属性失败,结果为nil 如果可选...

  • 15 可选链和异常处理

    1. 可选链 1.1 可选链的概念 它的可选性体现于请求或调用的目标当前可能为空(nil)如果可选的目标有值,那么...

  • Swift - 可选链

    可选链 可选链 它的可选性体现于请求或者调用的目标当前可能为空 (nil)如果可选的目标有值,那么调用就会成功;如...

网友评论

      本文标题:21 可选链

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