swift版的枚举变量
程序员文章站
2022-04-11 17:04:52
...
swift版的枚举变量
swift的枚举类型跟普通的类是极为类似的,使用的时候,请不要以为他是一个常量,以下是测试用源码
//
// ViewController.swift
// SwiftEnum
//
// Created by YouXianMing on 15/10/9.
// Copyright © 2015年 ZiPeiYi. All rights reserved.
//
import UIKit
enum Planet: Int {
case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}
enum CompassPoint: String {
case North, South, East, West
}
enum Barcode {
case UPCA(Int, Int, Int, Int)
case QRCode(String)
}
enum MinionIndex: Int {
case DAVE, BOB, JERRY, JORGE, KEVIN, MARK, PHIL, STUART, TIM
static let minionNames = [
DAVE : "Dave",
BOB : "Bob",
JERRY : "Jerry",
JORGE : "Jorge",
KEVIN : "Kevin",
MARK : "Mark",
PHIL : "Phil",
STUART : "Stuart",
TIM : "Tim"]
func minionName() -> String {
if let minionName = MinionIndex.minionNames[self] {
return minionName
} else {
return "Minion"
}
}
func minionImage() -> UIImage? {
return UIImage(named: "Minion\(minionName())")
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
normalExample()
planetExample()
compassPointExample()
barcodeExample()
minionIndexExample()
}
func normalExample() {
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy \(x)?")
default:
print("Everything tastes good in soup.")
}
}
func planetExample() {
if let planet : Planet = Planet(rawValue: 1) {
// switch 操作
switch planet {
case .Mercury:
print("\(planet) \(planet.rawValue)")
case .Earth:
print("\(planet) \(planet.rawValue)")
case .Neptune:
print("\(planet) \(planet.rawValue)")
default:
print("\(planet) \(planet.rawValue)")
}
} else {
// 没有这个枚举值
print("no value")
}
}
func compassPointExample() {
if let compassPoint : CompassPoint = CompassPoint(rawValue: "Kxo") {
// switch 操作
switch compassPoint {
case .North:
print("\(compassPoint) \(compassPoint.rawValue)")
case .West:
print("\(compassPoint) \(compassPoint.rawValue)")
default:
print("\(compassPoint) \(compassPoint.rawValue)")
}
} else {
// 没有这个枚举值
print("no value")
}
}
func barcodeExample() {
let barCode = Barcode.UPCA(20, 120, 10, 20)
switch barCode {
case .UPCA(20, 120, 10, 20):
print("YES")
default:
print("NO")
}
}
func minionIndexExample() {
print(MinionIndex.DAVE.minionImage())
}
}
rawValue类型的枚举类型
可以带参数,可以带方法
非 rawValue 类型
上一篇: 清朝王爷弘昼有多荒唐?为何一生荒唐却得了个极尽赞美的谥号?
下一篇: swift 枚举
推荐阅读
-
PowerShell使用枚举变量定义带智能提示功能的函数参数
-
深入探究Swift枚举关联值的内存
-
iOS开发之常用资讯类App的分类展示与编辑的完整案例实现(Swift版)
-
纤薄与实用的平衡设计典范 宏碁Swift5 15英寸版详细图文评测
-
WIN10下的JDK安装与配置环境变量的过程(详细版)
-
[swift]iOS开发:使用rar解压库Unrar4iOS遇到的那些坑,另附上自己的一个简易版的本地沙盒文件浏览器
-
win环境停mysql5.5.34x64社区版所有变量的默认值
-
photoshop cs5 官方中文破解版下载 PHP的变量总结 新手推荐
-
PHP5.5版本之前empty函数的参数只能为变量
-
PowerShell使用枚举变量定义带智能提示功能的函数参数