• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift-8-枚举

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
// Playground - noun: a place where people can play

import UIKit

// 枚举语法
enum SomeEnumeration {
    // enumeration definition goes here
}
// 定义一个枚举
enum CompassPoint {
    case North
    case South
    case East
    case West
}
// 声明枚举时,并不会像C/OC那样为枚举成员赋默认值
// 多个枚举成员出现在一行用逗号隔开
enum Planet {
    case Mercury, Venus, Earth, Mars
}

var directionHead = CompassPoint.West
// 变量directionHead现在已知为CompassPoint类型,再次赋值时可以省略枚举类型
directionHead = .South

// 通过Switch匹配枚举值
switch directionHead {
    case .North:
        println("north")
case .South:
    println("south")
case .West:
    println("west")
case .East:
    println("east")
default:
    break
}

// 关联值 Associated Values
enum BarCode {
    case UPCA(Int, Int, Int, Int) // UPCA 类型为(Int, Int, Int, Int)
    case QRCode(String) // QRCode 类型为 (String)
}

var productCode = BarCode.UPCA(8, 890, 89, 99)
productCode = .QRCode("ABCDEFG")

// 提取关联值 使用let还是var根据case语句内的使用情况决定
switch productCode {
    case .UPCA(let a1, let a2, let a3, let a4):
        println("UPCA:\(a1)-\(a2)-\(a3)-\(a4)")
    case .QRCode(let s1):
        println("QRCode:\(s1)")
    default:
        break
}

// 原始值 Raw Values
enum ASCIIControlCharacter: Character {
    case Tab = "\t"
    case LineFeed = "\n"
    case CarriageReturn = "\r"
}

// 注意:原始值和关联值是不同的。对于一个特性的枚举成员,它的原始值始终是定义枚举时预设的值,而关联值当你通过一个枚举成员创建变量或者常量时会被设置,每一次都可以不一样

// 当整数[ntegers]被用于初始化原始值时,如果其它成员没有特别指定初始值,原始值将会自增
enum SomePlanet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Santurn, Uranus, Neptune
}

// 通过rawValue属性访问枚举成员
let earthsOrder = SomePlanet.Earth.rawValue

// 通过原始值初始化实例
let possiblePlanet = SomePlanet(rawValue: 7) // 返回值为optional?

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap