美文网首页
Swift-枚举 enum

Swift-枚举 enum

作者: 开了那么 | 来源:发表于2021-10-14 09:13 被阅读0次

本文主要介绍enum的常见使用形式,
1、常规枚举写法

enum Week{
    case north
    case souch
    case east
    case west
}

<!--2、写法二-->
//也可以直接一个case,然后使用逗号隔开
enum Week{
    case MON, TUE, WED, THU, FRI, SAT, SUN
}

2、字符串类型枚举 枚举值和原始值rawValue的关系为case 枚举值 = rawValue原始值

enum Week{
    case north = “north”
    case souch = “souch”
    case east = “east”
    case west = “west”
}

如果不想写枚举值后的字符串,也可以使用隐式RawValue分配,如下所示

<!--String类型-->
enum Week: String{
    case north, souch, east = "east", west
}

<!--Int类型-->
//MON是从0开始一次递推,而WED往后是从10开始一次递推
enum Week: Int{
    case north, souch, east = 3, west, 
}

如果enum没有声明类型,是没有rawValue属性的

3、如何访问枚举值

public enum testEnum: String {

    case MON = "MON____"

    case TUE = "TUE"

    case WED = "WED"

    case THU = "THU"

    case FRI = "FRI"

    case SAT = "SAT"

    case SUN = "SUN"

}

         print(testEnum.MON)
         print(testEnum.MON.rawValue)
        
        let srw: String = testEnum.MON.rawValue
        print("-------\(srw)")
      
         var allcase = testEnum.allCases
        print("-------\(allcase)")
        
        let all = testEnum.allCases.map({"\($0)"}).joined(separator: ",")
        print(all + "---------");
        
打印结果如下 ----------------------------------------------------------       
MON
MON____

-------MON____

-------[MallProjectSwift.testEnum.MON, MallProjectSwift.testEnum.TUE, MallProjectSwift.testEnum.WED, MallProjectSwift.testEnum.THU, MallProjectSwift.testEnum.FRI, MallProjectSwift.testEnum.SAT, MallProjectSwift.testEnum.SUN]

MON,TUE,WED,THU,FRI,SAT,SUN---------

4关联值
如果希望用枚举表示复杂的含义,关联更多的信息,就需要使用关联值了

例如,使用enum表达一个形状,其中有圆形、长方形等,圆形有半径,长方形有宽、高,我们可以通过下面具有关联值的enum来表示

//注:当使用了关联值后,就没有RawValue了,主要是因为case可以用一组值来表示,而rawValue是单个的值
enum ShapeOfPen{
    //case枚举值后括号内的就是关联值,例如 radius
    case circle(radius: Double)
    case rectangle(width: Int, height: Int)
}

具有关联值的枚举,就没有rawValue属性了,主要是因为一个case可以用一个或者多个值来表示,而rawValue只有单个的值

相关文章

  • Swift-枚举 enum

    本文主要介绍enum的常见使用形式,1、常规枚举写法 2、字符串类型枚举 枚举值和原始值rawValue的关系为c...

  • Swift-细说枚举(Enum)

    一. 枚举的声明 枚举的定义 声明一个方向的枚举,包含四个枚举值: 东/西/南/北. Swift 的枚举成员在被创...

  • Swift-进阶:枚举enum

    本文主要介绍enum的常见使用形式,以及枚举大小是如何计算的 补充:添加脚本自动生成SIL 通过target ->...

  • swift3语法(八)

    枚举/结构体 枚举 定义形式enum 枚举名 { 枚举值} // 例如enum CompassPoint {...

  • Swift-进阶 08:枚举enum

    Swift 进阶之路 文章汇总[https://www.jianshu.com/p/5fbedf309237] 本...

  • Swift-进阶 08:枚举enum

    Swift 进阶之路 文章汇总[https://www.jianshu.com/writer#/notebooks...

  • Rust 编程语言-6-枚举和模式匹配

    6. Enum和Pattern matching 6.1 Enum枚举 IP地址枚举 消息类型枚举:可以看到枚举中...

  • 菜鸡学Swift3.0 12.枚举

    1. 枚举定义 enum 定义枚举类型 { case 枚举项 ... } 2.原始值 rawValue enum...

  • Swift Day03 枚举 可选项

    一、枚举 1. 枚举(enum)的基本写法? 2. 枚举(enum)的关联值(Associated Value)?...

  • Python_枚举

    一、枚举 Enum类 Python中所有枚举类型都是enum模块下的Enum类的子类。 枚举中的标识最好全部使用大...

网友评论

      本文标题:Swift-枚举 enum

      本文链接:https://www.haomeiwen.com/subject/gspyoltx.html