swift枚举_003_swift枚举类型

Posted 爱你久久

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift枚举_003_swift枚举类型相关的知识,希望对你有一定的参考价值。

//: Playground - noun: a place where people can play

import UIKit

//------枚举---------//

//1.Swift中的枚举
//描述一个人的性别(0:男,1:女,2:不详)

//enum Sex { //枚举类型
//    case Male //枚举值
//    case Female
//    case Unknown
//
//}
//
////定义枚举变量
//var mySex : Sex = Sex.Female
//mySex = .Male
//
//var yourSex : Sex = .Unknown
//
//if yourSex == .Unknown {
//    
//    print("此人似男非女")
//}
//
////2.枚举和switch的结合使用
///*
//为了保证安全性,switch和枚举类型结合使用时:
//(1)将所有枚举值列出,所以情况都要考虑
//(2)或者使用default来表示默认情况
//*/
//switch mySex {
//case Sex.Male:
//    print("男生")
//case Sex.Female:
//    print("女生")
////case Sex.Unknown:
////    print("不详")
//default:
//    print("无法识别")
//    
//}

//3.枚举的原始值
//在Swift中枚举值不是默认为整型,和C,OC中不同。
enum Sex : Int {
    case Male = 0
    case Female = 1
    case Unknown = 2
    
}

//打印枚举值的原始值
print(Sex.Unknown.rawValue)

//枚举原始值的类型在Swift中做了扩展:String, Character, Int, Float, Double
//enum NewSex : String {
//    case Male = "Male"
//    case Female = "Female"
//    case Unknown = "Unknown"
//    
//}

//原始值的隐性赋值:
//String:默认和枚举值名字相同
//Int:默认从0开始,依次递增1
enum NewSex: String{
    case Male, Female, Unknown
    
}

print(NewSex.Female.rawValue)

//用原始值给变量做初始化
var hisSex = Sex.Male

//枚举构造器-->返回是一个可选类型,如果传入的原始值为不合法值,则返回nil
var herSex = Sex(rawValue: 5)


//可选绑定
if let yourSex = Sex(rawValue: 10) {
    
    switch yourSex {
        
        case Sex.Male:
            print("男生")
        case Sex.Female:
            print("女生")
        case Sex.Unknown:
            print("不详")
      
        
    }
} else {
    print("没有此性别")
        
}

//4.枚举的关联值(相关值):存储枚举值一些额外的信息,相关值可以是不同类型的数据
//(1)基本语法
enum Color {
    case Red(alpha:Float)
    case Blue(alpha:Float, Y:Float, L:Int)
    

}

var myColor:Color = Color.Red(alpha: 0.5)
myColor = .Blue(alpha: 1, Y: 100, L: 100)


//if myColor == Color.Red(alpha: 0.3) {
//    
//    
//}

switch myColor {
    
case Color.Red(let alpha):
    print("red alpha = \(alpha)")
    
case Color.Blue(let a, let b, let c):
    print("Blue a=\(a),b=\(b),c=\(c)")
    
}

enum BarCode {
    
    case UP
}

 

以上是关于swift枚举_003_swift枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

使用Swift枚举作为视图标记号而不使用rawValue

Swift 学习- 09 -- 枚举

Swift-2.8枚举

从匹配类型的字符串中获取 Swift 枚举类型,而不是 rawValue

Swift基础小结_2

学习Swift--枚举的初步认识 --个人备忘 大神勿喷