swift枚举

Swift中的枚举可以定义一组常量、提高程序的可读性;还具有面向对象特性。
使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下:
enum 枚举名

     枚举的定义
}
“枚举名”是该枚举类型的名称。它首先应该是有效的标识符,其次应该遵守面向对象的命名规范,它由一组成员值和一组相关值组成。

成员值
枚举的成员值默认情况下不是整数类型,以下代码是声明枚举示例:

 

  1. <span style="font-size:14px;">enum WeekDays {
  2. case Monday
  3. case Tuesday
  4. case Wednesday
  5. case Thursday
  6. case Friday
  7. }
  8. </span>

在这些成员值前面要加上case关键字,也可以将多个成员值放在同一行,用逗号隔开,如下所示:

 

  1. <span style="font-size:14px;">enum WeekDays {
  2. case Monday, Tuesday, Wednesday, Thursday, Friday
  3. }</span>

下面我们看一个示例,代码如下:

  1. <span style="font-size:14px;">var day = WeekDays.Friday
  2. day = WeekDays.Wednesday
  3. day = .Monday   </span>

使用枚举成员赋值时候,我们可以采用完整的“枚举类型名.成员值”的形式,也可以省略枚举类型采用“.成员值”的形式。这种省略形式能够访问的前提是,Swift编译器能够根据上下文环境推断类型。因为我们已经在第1行和第2行给day变量赋值,所以即使第3行代码采用缩写,Swift编译器能够推断出数据类型是WeekDays。

原始值
出于业务上的需要,要为每个成员提供某种基本数据类型,我们可以为枚举类型提供原始值(raw values)声明,这些原始值类型可以是:字符、字符串、整数和浮点数等。
原始值枚举的语法格式如下:
enum 枚举名: 数据类型
{   
  case 成员名 = 默认值
  ...
}
在“枚举名”后面跟“:”和“数据类型”就可以声明原始值枚举的类型,然后在定义case成员的时候需要提供原始值。
以下代码是声明枚举示例:

[html] view plain copy

print?

  1. <span style="font-size:14px;">enum WeekDays: Int {
  2. case Monday         = 0
  3. case Tuesday         = 1
  4. case Wednesday      = 2
  5. case Thursday        = 3
  6. case Friday          = 4
  7. }</span>

我们声明的WeekDays枚举类型的原始值类型是Int,需要给每个成员赋值,只要是Int类型都可以,但是每个分支不能重复。

相关值
在Swift中除了可以定义一组成员值,还可以定义一组相关值(associated values),它有点类似于C中的联合类型。下面看一个枚举类型的声明:

  1. <span style="font-size:14px;">enum Figure {
  2. case Rectangle(Int, Int)
  3. case Circle(Int)
  4. }</span>

枚举类型Figure(图形)有两个相关值: Rectangle(矩形)和Circle(圆形)。Rectangle和Circle是与Figure有关联的相关值,它们都是元组类型,对于一个特定的Figure实例,只能是其中一个相关值。从这一点来看,枚举类型的相关值类似于C中的联合类型。

时间: 2024-10-20 17:13:23

swift枚举的相关文章

Swift - 枚举

1,首先打开xcode,新建一个swift的工程. 2,定义第一种枚举  方法如下: import Foundation println("Hello, World!") //定义一个枚举 enum //Direction这个是枚举的名字 enum Direction { //在枚举中定义的值(如North,South,East和West)是枚举的成员值(或成员).这个例子里case关键字表示成员值一条新的分支将被定义 case North case South case East c

Swift 枚举和结构

枚举 使用enum创建枚举--注意 Swift 的枚举可以关联方法: 1 enum Rank: Int { 2 case Ace = 1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten 3 case Jack, Queen, King 4 func simpleDescription () -> String { 5 switch self { 6 case .Ace: 7 return "ace" case .

24.swift枚举

import Foundation /* Swift枚举: Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 格式: enum Method{ case 枚举值 } */ enum Method{ //    case Add //    case Sub //    case Mul //    case Div // 可以连在一起写 case Add, Sub, Mul, Div } // 可以使用枚举类型变量或常量接收枚举值

5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左到右对应0,1,2,3 enum CompassPoint { case North case South case East case West //enum中可以定义方法 func show(){ print(self) } } //定义enum 变量 var p = CompassPoint.Nor

Swift 枚举(七)

http://blog.csdn.net/huangchentao/article/details/32714621 枚举 1.枚举语法 用enum并把定义放在大括号内,枚举中被定义的值是枚举的成员,case关键字表示新定义的一个成员 [objc] view plaincopy enum SomeEnumeration { // enumeration definition goes here } enum CompassPoint { case North case South case Ea

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 /

Swift枚举代码

1.枚举的定义:使用ENUM关键词把它们整个定义放在一对大括号内 enum SomeEumeration { //enumeration definition goes here } 2.枚举的使用: enum Gender { case Male case Female } let ww { case .Male: print("nan ren") case Gender.Female: print("nv ren") } 3.枚举的关联值: enum Gende

Swift枚举-相关值与递归枚举

代码: enum ArithmeticExpression { // 相关值 case Number(Int) // 递归枚举 indirect case Addition(ArithmeticExpression, ArithmeticExpression) indirect case Multiplication(ArithmeticExpression, ArithmeticExpression) indirect case Division(ArithmeticExpression, A

swift 枚举类型

import UIKit /* **枚举类型 */ enum direction { case North case Sourth case East case West } //不会被默认为整数类型 var d = direction.East d = .West switch d { case .North: println("North") case .West: println("West") default: println("default&q