美文网首页
11-Swift 枚举

11-Swift 枚举

作者: magic_pill | 来源:发表于2017-02-22 22:59 被阅读8次

一、概念:

  • 枚举定义了一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值。
  • 在 C/OC 语言中枚举指定相关名称为一组整型值;
  • Swift 中的枚举更加灵活,不必给每一个枚举成员提供一个值,也可以提供一个值是字符串,一个字符,或者是数字

二、枚举的语法:

使用关键字 enum,并且把它们的整个定义放在一个大括号内

三、枚举的定义:

  • 定义一:
enum Type{
    case type1
    case type2
    case type3
}
  • 定义二:多个成员值可以出现在同一行上
enum Type1{
    case type1,type2,type3
}

四、给枚举类型赋值:

  • 默认枚举是没有任何类型的,就是一个标识;
  • Swift中,枚举类型可以绑定任何值,但是要提前声明要绑定的值类型.
enum Type : Int{
    case type1 = 0
    case type2 = 1
    case type3 = 2
}
enum Type : String{
    case type1 = "abc"
    case type2 = "123"
    case type3 = "xyz"
}

五、枚举的简单使用:

  • 通过枚举值获取原始值 rawValue:
enum Type : String{
    case type1 = "abc"
    case type2 = "123"
    case type3 = "xyz"
}
Type.type2.rawValue    //"123"
func test(type:Type){
    if type == Type.type1 {
        type.rawValue + "123"
    }
}
test(type: Type.type1)     //"abc123"
  • 通过 rawValue 获取枚举值:
enum Type : String{
    case type1 = "abc"
    case type2 = "123"
    case type3 = "xyz"
}
let type = Type(rawValue: "123")  //type2
//type为可选类型
  • 注意:枚举值仅仅是一个抽象符号,并不代表任何类型;如果绑定原始值,必须指明枚举的类型。

相关文章

  • 11-Swift 枚举

    一、概念: 枚举定义了一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值。 在 C/OC...

  • 11-Swift函数

    函数的介绍 函数相当于OC中的方法 函数的格式如下 func 函数名(参数列表) -> 返回值类型 {代码块ret...

  • 11-Swift继承(Inheritance)

    一个类可以继承另外一个类的方法、属性和其他特性。当一个类继承其他类时,继承类叫子类,被继承类叫父类。 在swift...

  • 11-Swift循环语句

    1.For In循环 可以使用 for-in 循环来遍历一个集合中的所有元素,例如数字范围、数组中的元素或者字符串...

  • 11-Swift方法、下标

    1.方法 枚举、结构体、类都可以定义实例方法、类型方法 实例方法:通过实例对象调用 类型方法:通过类型调用,用st...

  • C#枚举及与枚举常数的转换

    1、枚举的定义 2、枚举绑定到comboBox 3、枚举常数转换为枚举string转枚举 数字值转枚举

  • Swift 基础笔记 - 枚举

    枚举 OC定义和使用枚举 Swift定义枚举类型 Swift判断枚举类型 枚举成员类型

  • 枚举类

    1.枚举类型的定义: 枚举类型定义的一般形式为 enum 枚举名{//枚举值表枚举值1;枚举值2;...} 在枚举...

  • 10、枚举与闭包

    枚举 枚举和普通类相比有什么优势 枚举类型、枚举名称与枚举值 枚举的比较运算 两个枚举之间可以使用等值比较(==)...

  • Swift与OC的语法简单对比(常用语法二)

    20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...

网友评论

      本文标题:11-Swift 枚举

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