日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

枚举与可选值

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 枚举与可选值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

枚舉的定義和使用

enum Gender {case Malecase Female //兩種情況} let kangkang: Gender = .Male //用枚舉switch kangkang { case .Male:print("nan ren") case Gender.Female:print("nv") } //用枚舉來判斷

用枚舉后面可以存數據

?

enum Gender {case Male(String)case Female(Int,String) //表示可以關聯任意類型,每個case關聯的數據可以不一樣 }let kang = Gender.Male("") //存了一個男人,int類型不用""號 switch kang { case .Male(let x):print("zhe shi ge \(x)") case .Female:print("女") }

枚舉的下標默認重0開始,并且下標不能重復,否則報錯。

enum Status :Int{ //原生值,所有原生值都必須唯一case UnApprovedcase Approvedcase X = 5 //=1 就報錯case Ycase XX}let goods = Status.Approved goods.rawValue

聲明一個可選值,可選值就是可以不給值,默認有一個值

var str: String? = "asdfasdf" //str是一個可以設置nil的String //enum Optional{case None case Some} str = nil let i: Int? //如果聲明的時候不賦值,默認就是nil
//str.startIndex//會報錯,因為此時str不是一個真正的String,所以沒有startIndex

兩種方法解決optional的問題

var str = "asddas"
str = nil
//
第一種 str!.startIndex //強制變為String //第二種,optional binding if let s = str {print("\(s)") } else {print("str 是nil值") }

隱式的解封

var str2: String! = "sadf" //稱之為隱式的解封(implicitly unwrapped) //str2 = nil str2.startIndex

optional chain 可選鏈

class Person {var ci: ClassInfo? } class ClassInfo {var t:Teacher? } class Teacher {var name = "cj" } let p = Person() let t = Teacher() let ci = ClassInfo() ci.t = t p.ci = ci p.ci?.t?.name = "double zhang " p.ci?.t?.name p.ci!.t!.name //可以強制解封 if let n = p.ci?.t?.name { //也可以用可選綁定 }

?

轉載于:https://www.cnblogs.com/kangniuniu/p/4941010.html

總結

以上是生活随笔為你收集整理的枚举与可选值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。