列舉基本使用
列舉值和關聯值的區別//列舉的簡單定義和簡單應用
//第一種定義方式
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...