Swfit5 0基礎之列舉

2021-10-03 07:06:45 字數 1365 閱讀 1843

列舉基本使用

//列舉的簡單定義和簡單應用

//第一種定義方式

enum direction

//第二種定義方式

enum direction1

//列舉的簡單使用

var dir = direction.west

dir = direction.north

dir = .east

print(dir)

switch dir

//列舉關聯值的使用

enum score

var score = score.points(100)

score = .grade("a")

score = .level("dddd")

score = .levelstr("zhangsan", "lisi")

switch score

//列舉原始值的使用 只有在定義列舉的時候指定了型別 才可以點出原始值

enum pokersuit:character

let suit:pokersuit = .spade

print(suit.rawvalue)

列舉值和關聯值的區別

var age = 100

memorylayout.size //變數實際用到的記憶體大小

memorylayout.stride //變數被分配的記憶體大小

memorylayout.alignment //記憶體對齊引數

memorylayout.size(ofvalue: age)

memorylayout.stride(ofvalue: age)

memorylayout.alignment(ofvalue: age)

enum password

//列舉的記憶體分布控制項

// 列舉變數記憶體 先儲存關聯變數 還有乙個位元組儲存原始值 再按照對齊引數進行分配記憶體 列舉變數會按照最大變數的記憶體去分配

var pwd = password.number(5,6,7,8)

memorylayout.size(ofvalue: pwd)

memorylayout.alignment(ofvalue: pwd)

memorylayout.stride(ofvalue: pwd)

pwd = password.other

memorylayout.stride(ofvalue: pwd)

//原始值 原始值是不容許自定義 不會在列舉變數記憶體中分配空間 會在rawvalue的時候獲取

原始值和關聯值的本質區別 在於關聯值被儲存在列舉變數記憶體中,而原始值不會儲存到列舉型別變數記憶體中。

java基礎之列舉

讓某個型別的變數的值只能取若干個值中的乙個,否則,編譯器報錯。將原先執行時才能發現的問題提前到編譯時揭露。也是jdk1.5新特性 實現原理 1 將建構函式私有化,使其他人無法建立物件 2 定義預定數量的物件,並用public 和final static修飾,供使用者呼叫 3 可以有若干具體或抽象方法...

Java基礎之列舉

列舉 列舉enum 列舉就是要讓某個型別的變數的取值,只能為若干個固定值中的乙個,否則,編譯器報錯 列舉可以讓編譯器在編譯時就可以控制源程式中填寫的非法值,普通變數的方式在開發階段無法實現這一目標。列舉是一種特殊的類,列舉中的每乙個元素都是乙個例項物件 用普通類如何實現列舉功能,定義乙個weekda...

Java基礎之 列舉

乙個示例的列舉的定義 public enum producttype public static producttype getportraitbyid string name throw new illegalargumentexception illegal argument public st...