swift學習之三 列舉練習

2021-07-11 14:55:25 字數 1105 閱讀 1176

//------------------------//

enum weekdays

func showdaystr(aday:weekdays) -> void

/*亮點2:最原始的索引值了,即使指定了原始值,它還是保留原值,這裡總是0~*/

print(aday.hashvalue)

}showdaystr(weekdays.monday)

/* 如果到這裡,以為列舉內容就結束了。

但swift做了擴充套件,這也是單獨寫個部落格原因。先說多出來的概念。

1: 原始值:

enum 列舉名 : 資料型別

2:相關值

enum 列舉名

*/enum weekday***tendwithraw: string

}}/*亮點3:如果指定了原始值的資料型別,就多了個構造方法,但返回可能是空*/

var day = weekday***tendwithraw.init(rawvalue: "星期一")

day?.hashvalue

print(day?.discription())

print(day==weekday***tendwithraw.monday)

enum weekday***tendwithassociated

}}var dayassociated = weekday***tendwithassociated.wednesday("hello", "world", 8)

/*如果指定了相關值,就隱藏了hashvalue以及與weekday***tendwithassociated.wednesday做比較判斷。

更不像原值的那樣,能利用索引點運算出來,像這樣

let rawvalue = (dayassociated,day)

print(rawvalue.0.discription())

也許這樣處理更安全吧,這個還沒理解透徹~

*/print(dayassociated.discription())

不知道總結的是否全面,不過上面的用法已經很強大了,足矣滿足所有列舉的需求。

乙個列舉都整這麼熱鬧,看來swift真不是蓋的~

參考:

Swift學習筆記 10 列舉

1.定義語法 enum someenumeration2.使用 enum compasspoint var directiontohead compasspoint.west directiontohead south switch directiontohead 注 1.變數乙個次賦值為列舉型別以...

swift學習筆記 20 列舉

當乙個變數有固定的幾個取值的時候,建議用列舉,比如說星期,月份等 列舉型別定義的資料型別的取值,只能是 case 後面的取值 enum weekday string var dayone weekday.friday 如果要改變 dayone 的值,用.就可以訪問 dayone monday 如果s...

swift學習筆記(8) 列舉

enum someenumeration 下面是用列舉表示指南針四個方向的例子 enum compasspoint 列舉中定義的值 如 north,south,east和west 是這個列舉的成員值 或成員 你可以使用case關鍵字來定義乙個新的列舉成員值。注意 與 c 和 objective c ...