首页 > 技术文章 > Swift - 枚举

liaolijun 2015-06-11 22:20 原文

1,首先打开xcode,新建一个swift的工程.

2,定义第一种枚举  方法如下:

import Foundation

println("Hello, World!")

//定义一个枚举 enum

//Direction这个是枚举的名字

enum Direction { 

//在枚举中定义的值(如North,South,East和West)是枚举的成员值(或成员)。这个例子里case关键字表示成员值一条新的分支将被定义

    case North

    case South

    case East

    case West

    

};

//注意:Swift枚举成员在创建时不分配默认整数值,c语言和OC是分配默认的整数值(1,2,3..)

//枚举也可以这样定义

enum Direction2 {

    //也可以多个成员的值可以出现在一行上,用逗号分隔

    case North,South,West,East;

};

 

//申明一个枚举

//North这个是子名字

var d = Direction.North;

 

//使用Direction的类型时,用d2的一个可能值初始化的推断。一旦Direction被声明为一个d2,您可以将其设置为使用更短的"."点语法(.West)而不用再书写枚举d2值本身

var d2 = Direction.West;

//注:是已知d2是Direction枚举类型,d2才可以直接等于.South

d2 = .South;

//也可以这样写

var d3 :Direction = .East;

var d4 :Direction = Direction.East;

 

//如果d 的值不等于里面任何一个值的时候,必须要写default,不然运行不会通过

switch d {

case .North:

    println("in North");

case .South:

    println("i south");

case .West:

    println("in east");

case .East:

    println("in east");

default:

    println("other")

 

}

 

//第二种枚举类型

//相似c语言

enum Couse :Int {

//Couse是一个枚举,是int类型

    case Android = 1,iOS,Window,Symbian

}

 

var c : Couse = Couse.iOS;

 

//注意:最新的swift  没有toRaw,用rawValue替代

//最新的把枚举转化成int类型  是rawValue

let v = c.rawValue;

println("v is \(v)")

 

 

//注意:最新的swift  没有fromRaw(),用init(rawValue:4)替代

//意思是把rawValue:4 里面的4 转化成Couse类型枚举

var c2 = Couse.init(rawValue:4);

if (c2 == Couse.Symbian){

 

    println("is Symbian")

}

 

推荐阅读