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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

初学swift笔记 枚举(七)

發布時間:2024/1/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初学swift笔记 枚举(七) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1 import Foundation 2 3 /* 4 枚舉 5 6 語法結構 7 enum 類型 { 8 case 值 9 } 10 */ 11 //定義一個枚舉 寫法1 12 enum LiuShiQun { 13 case Name 14 case Age 15 case Sex 16 case Add 17 case Sub 18 case Mul 19 case Div 20 } 21 //定義一個枚舉 寫法2 22 enum LiuShiQun_1 { 23 case Add,Sub 24 case Mul 25 case Div 26 } 27 //定義一個枚舉變量 寫法1 28 let enum_Name: LiuShiQun = .Name 29 //定義一個枚舉變量 寫法2 30 let enum_Age: LiuShiQun = LiuShiQun.Age 31 // 定義枚舉變量 寫法3 32 let enum_Add = LiuShiQun_1.Add 33 34 //與switch結合 將閉包的各種方式加入到方法里 35 //匹配的時候,如果不將枚舉對所有值都case出來,switch會報錯 否則末尾添加default 36 func chooseMethod(op: LiuShiQun_1) ->(Double,Double) -> Double { 37 switch op { 38 case .Add: 39 func add(a: Double,b: Double) -> Double { 40 return a+b 41 } 42 return add 43 case .Sub: 44 return {(a: Double,b: Double) -> Double in return a - b} 45 case .Mul: 46 return {return $0 * $1} 47 case .Div: 48 return {$0 / $1} 49 default : 50 return{$0 + $1} 51 } 52 } 53 //聲明一個對象 調用方法,傳遞枚舉的值 得到一個閉包類型的值 54 let val_1 = chooseMethod(.Mul) 55 //調用val_1閉包 56 let value_2 = val_1(4,7) 57 println(value_2) 58 59 /* 60 枚舉原始值定義 61 enum Lsq: Int { 62 case Add,Sub,Mul,Div 63 } 64 不指定值的話,從0開始,依次 +1 65 Lsq.Add.toRaw() 得到Lsq.Add的原始值 - 對應 fromRaw 將值反推 將原始值轉為枚舉值 66 Lsq.Add.rawValue 得到Lsq.Add的原始值 67 68 69 enum Lsq_1: Int { 70 case Add=0,Sub=1,Mul=3,Div=4 71 } 72 73 enum Lsq_2: String { 74 case Add="add",Sub="sub",Mul="mul",Div="div" 75 } 76 */ 77 78 enum Lsq_1: Int { 79 case Add=0,Sub,Mul,Div 80 } 81 println(Lsq_1.Add.rawValue) 82 enum Lsq_2: String { 83 case Add="add",Sub="sub",Mul="mul",Div="div" 84 } 85 println(Lsq_2.Add.rawValue) 86 87 let op : Lsq_2? = Lsq_2(rawValue: "add") 88 println(op) 89 //字符串轉枚舉值 90 func get_enums(str: String) { 91 let new_op : Lsq_2? = Lsq_2(rawValue: str) 92 if var temp_op = new_op { 93 switch temp_op { 94 case .Add: 95 println("Add") 96 case .Div: 97 println("Div") 98 case .Mul: 99 println("Mul") 100 case .Sub: 101 println("Sub") 102 default : 103 println("error: \(str)") 104 } 105 } 106 else { 107 println("no") 108 } 109 } 110 get_enums("adds") 111 112 //枚舉相關值 113 //兩個值關聯枚舉值 114 enum LineSegmentDescriptor { 115 case StartAndEndPattern(start : Double,end : Double) 116 case StartAndLengPattern(start : Double,length : Double) 117 } 118 //定義一個變量 指定枚舉值的兩個關聯值 119 var lsd = LineSegmentDescriptor.StartAndEndPattern(start: 1, end: 10) 120 lsd = LineSegmentDescriptor.StartAndLengPattern(start: 1, length: 9) 121 //將值提取出來 122 switch lsd { 123 //case let .StartAndEndPattern( s, e)://switch 值綁定模式 124 case .StartAndEndPattern(let s,let e)://switch 值綁定模式 125 println("開始\(s) 結束\(e)") 126 case .StartAndLengPattern(let s,let e)://switch 值綁定模式 127 println("開始\(s) 結束\(e)") 128 }

?

轉載于:https://www.cnblogs.com/lsqandzy/p/4908929.html

總結

以上是生活随笔為你收集整理的初学swift笔记 枚举(七)的全部內容,希望文章能夠幫你解決所遇到的問題。

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