Swift学习笔记13-可选链

张开发
2026/4/4 5:55:07 15 分钟阅读

分享文章

Swift学习笔记13-可选链
// // main.swift // class13 // // Created by sakiko on 2026/3/30. // import Foundation print(Hello, World!) //可选链一个可选项可以不要拆包就不要拆包(其实这课不是很懂。。。 //作用可以避免强行解包可选值时可能导致的运行时错误如 Optional 的解包错误。如果链中的任何部分为 nil整个表达式会安全返回 nil。 /* 介绍 如果可选项欸nil调用方法、下标、属性失败结果最后为nil 如果可选项不为nil调用方法、下标、属性成功结果会被包装成可选项 如果结果本来就是可选项则不会进行再次包装 */ class Car { var price 0 } class Dog { var weight 0 } class Person { var name: String var dog: Dog Dog() var car: Car? Car() func age() - Int{ 18 } func eat() { print(Person eat) } subscript(index: Int) - Int { index } } var person: Person? Person() //在以下的这些调用里如果person为nil后面的就不会运行直接返回nil var age1 person!.age() var age2 person?.age() var name person?.name var index person?[6] print(age1, age2, name, index) /* 18 Optional(18) Optional() Optional(6) */ if let _ person?.eat() { print(eat调用成功) } else { print(eat调用失败) } var dog person?.dog var weight person?.dog.weight var price person?.car?.price print(dog, weight, price) //Optional(class13.Dog) Optional(0) Optional(0) //可选链2 var scores [Jack: [86, 82, 84],Rose: [79, 94, 81]] scores[Jack]?[0] 100 //修改字典jack中的第一个分数 scores[Rose]?[2] 10 //修改字典 //scores[Kar]?[0] 88 //修改字典但是没有kate var num1: Int? 5 num1? 10 print(num1)//Optional(10) print(num1!) //10 var num2: Int? nil num2? 10 print(num2) //nil var dict: [String : (Int, Int) - Int] [ sum : (), differ : (-) ] var result dict[sum]?(10, 20) print(result)//Optional(30)

更多文章