Swift學(xué)習(xí)筆記-枚舉

  • 枚舉值沒有默認值,默認為枚舉類型。
  • switch中必須列出所有可能,不然必須用default
  • 設(shè)置有默認值的枚舉,必須在枚舉類型后聲明類型。取值的時候直接.rawValue(原始值)即可。
  • 關(guān)聯(lián)值只能保存一個,因為枚舉只能選其一。
  • 如果枚舉的關(guān)聯(lián)值使用到了自己,則需要添加indirect

1.多個成員值可以在同一行上,用,分開

enum direction {
        case east,west
        case north
        case sourth
    }

2.當(dāng)變量的類型已知為枚舉型時,可以用 .east賦值。(如tab.separatorStyle = .singleLine)

3.關(guān)聯(lián)值。

enum direction {
        case east,west(Int,Int)
        case north(String)
    }

//如果后面要改變內(nèi)部枚舉類型的值,這里必須為var。只能擁有一個關(guān)聯(lián)值,相當(dāng)于枚舉時的枚舉值切換。
var x = direction.west(1, 2)
        x = .north("zc")
        
        switch x {
        case let .west(a, b):
            print(a+b)
        case let .north(c):
            print(c)
        default:
            print("default")
        }

4.設(shè)置原始值,需要在枚舉后面加上類型,字符串默認就是枚舉的名字,Int默認為0 依次+1.(枚舉值的類型必須為字符,整型,浮點型,不可為元祖)
取值時使用rawValue

enum direction:Int {
        case east = 1
        case north = 2
        case sourth = 3
    }

let x = direction.west.rawValue
if  let x = direction(rawValue: 2){
            switch x {
            case .east:
                print("一路向東")
            default:
                print("不走了")
            }
        }else{
            print("沒有改值")
        }

5.遞歸枚舉,就是在枚舉中仍然使用該枚舉類型。

enum ArithmeticExpression {
        case number(Int)
        indirect case addition(ArithmeticExpression, ArithmeticExpression)
        indirect case multiplication(ArithmeticExpression, ArithmeticExpression)
    }

func evalute (_ expression: ArithmeticExpression) -> Int {
        
        switch expression {
        case let .number(a):
            return a
        case let .addition(a, b):
            return evalute(_:a)+evalute(_:b)
        case let .multiplication(a, b):
            return evalute(_:a)*evalute(_:b)
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容