Enum枚举

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

 

import UIKit

 

//定义枚举

//enum CompassPoint {

//    case North

//    case South

//    case East

//    case West

//}

//定义枚举

enum CompassPoint {

    case North, South, East, West

}

 

var point : CompassPoint

point = CompassPoint.North

//var a : Int = point

//通过 上下文环境 可以省略枚举名

point = .South

 

switch point {

case .North:

    println("北边")

case .South:

    println("南边")

case .East:

    println("东边")

case .West:

    println("西边")

}

 

 

//原始值 (裸值  Raw Values)

//枚举值可以有对应原始值 就像C中每个枚举值对应一个整数一样

enum Week : Int {

    case Sun = 0, Mon, Tur, Wen, Thu, Fri, Sat  //递增 +1

}

var weekDay = Week.Thu

//获取枚举的原始值

var weekNum = weekDay.rawValue

//不可以直接用原始值给枚举值赋值

//weekDay = 5

 

//通过原始值 创建枚举值时 返回的是 可选值

if let fri = Week(rawValue: 5) {

    fri.rawValue

}else {

    println("转换失败")

}

 

 

 

//枚举的 关联值

//跟踪物品  条形码 二维码

enum Barcode {

    //条形码  UPCA 关联3Int

    case UPCA(Int,Int,Int)

    //QRCode  关联的是一个字符串

    case QRCode(String)

}

//69开头 中国  中间内容 商品分类  最后一位 校验码(有固定算法)

var productBarCode = Barcode.UPCA(690, 253800584, 4)

productBarCode = Barcode.QRCode("sajdflksjdflksjadflksjadf")

 

switch productBarCode {

case .UPCA(let(num, id, check)):

    println("这是一个条形码 \(num)\(id)\(check)")

case .QRCode(let pCode):

    println("这是一个二维码 \(pCode)")

}

 

 

 

 

 

 

 

 

 

 

posted @ 2015-07-07 11:24  MokeyChan  阅读(138)  评论(0编辑  收藏  举报