Swift 系统学习 16 可选值 本质是枚举 (理解)

来源:互联网 发布:cntk python版本安装 编辑:程序博客网 时间:2024/06/05 16:40
//: Playground - noun: a place where people can playimport UIKit/* * 本节主要内容(理解): * 1.可选型本质是枚举类型 *//* * 1.可选型是新的类型 --> Optional枚举类型 * 2.和其他类型结合使用 --> Optional枚举类型包含泛型语法 * 3.只有可选型才可以赋值为nil --> Optional枚举类型有none这个case */// 数组的声明: 简化形式/复杂形式var arrayOne: [Int] = []var arrayTwo = Array<Int>()var arrayThree: Array<Int> = []/* * 可选型本质是枚举类型, 声明如下:   enum Optional<Wrapped> {      case none      case some(Wrapped)   } */// 简化形式(推荐)var stringOne: String? = "hello"print(stringOne)// 可选型完整显示声明(不推荐)var stringTwo: Optional<String> = Optional.none // 等价于nilprint(stringTwo)var stringThree: Optional<Int> = Optional.some(10) // 等价于10print(stringThree)// 简化形式一:stringThree = .some(20)print(stringThree)// 推荐的最简化形式二:stringThree = 30print(stringThree)// 从枚举类型角度, 查看强制解包stringThree!// 完整形式(预计)switch stringThree {case .some(let value):    // case let .some(value):    print("value is \(value)")case .none:    print("抛出异常Exception")}// 从枚举类型的角度, 查看if let解包var stringFour: String? = "swift"if let stringFour = stringFour {    print("stringFour is \(stringFour)")} else {    print("stringFour is nil")}switch stringFour {case .some(let value):    print("stringFour is \(value)")case .none:    // break    print("stringFour is nil")}// nil聚合let string: String? = "world"var displayLabel: UILabel?displayLabel?.text = string ?? "default"// 完整形式if string != nil {    displayLabel?.text = string} else {    displayLabel?.text = "default"}

0 0
原创粉丝点击