Swift学习 --- 2.8枚举

本文深入介绍了Swift语言中枚举的使用方法,包括简单的枚举类型、带有原始值的枚举、关联值的枚举以及如何在代码中进行模式匹配等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-size:18px;">

enum CompassPoint {
    case North
    case South
    case East
    case West
}

enum Planet {
    case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Nepturn
}

//枚举多种类型
enum Barcode {
    case UPCA(Int, Int, Int)
    case QRCode(String)
}

//原始值 可以定义为任意类型的原始值
enum ASCIIControlCharacter: Character {
    case Tab = "\t"
    case LineFeed = "\n"
    case CarriageReturn = "\r"
}

// 原始值可以自动递增
enum Planet1: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}

class ViewController: UIViewController {
                            
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //赋值不能单纯的等于 directionToHead = CompassPoint 要等于里面的一个值
        var directionToHead = CompassPoint.East
        directionToHead = .West
        println(directionToHead)
        
        //枚举可以有多个值是同一个选项
        let somePlanet = Planet.Mars
        switch somePlanet {
        case .Mars:
            println("Mostly harmless")
        default:
            println("Not a safe place for humans")
        }
        
        var productBarcode = Barcode.UPCA(8, 85909_51226, 3)

        //前缀一个let 简便书写
        switch productBarcode {
        case let .UPCA(numberSystem, identifier, check):
            println("UPC-A with value of \(numberSystem), \(identifier), \(check).")
        case let .QRCode(productCode):
            println("QR code with value of \(productCode).")
        }
        // 输出 "QR code with value of ABCDEFGHIJKLMNOP."
        
        //原始值 感觉这个比较有用
        let earthsOrder = Planet1.Earth.toRaw() //使用枚举成员的toRaw方法可以访问该枚举成员的原始值:
        let possiblePlanet = Planet1.fromRaw(7)
        
        println(earthsOrder)
        println("\(possiblePlanet)")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}




</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值