Swift学习笔记(三)-枚举和结构体

349 阅读1分钟

枚举

使用 enum来创建枚举。

枚举也能够包含方法

enum Rank: Int {
    case ace = 1
    case two, three, four, five, six, seven, eight, nine, ten
    case jack, queen, king
    func simpleDescription() -> String {
        switch self {
        case .ace:
            return “ace”
        case .jack:
            return “jack”
        case .queen:
            return “queen”
        case .king:
            return “king”
        default:
            return String(self.rawValue)
        }
    }
}
let ace = Rank.ace
let aceRawValue = ace.rawValue

默认情况下,Swift 从零开始给原始值赋值后边递增,但你可以通过指定特定的值来改变这一行为。

在上边的栗子当中,原始值的枚举类型是 Int,所以你只需要确定第一个原始值。剩下的原始值是按照顺序指定的。

你同样可以使用字符串或者浮点数作为枚举的原始值。使用 rawValue 属性来访问枚举成员的原始值。

使用 init?(rawValue:) 初始化器来从一个rawValue创建枚举的实例。

if let convertedRank = Rank(rawValue: 3) {
    let threeDescription = convertedRank.simpleDescription()
}

结构体

使用 struct来创建结构体。

结构体提供很多类似与类的行为,包括方法初始化器。其中最重要的一点区别就是结构体总是会在传递的时候拷贝其自身,而类则会传递引用

struct Card {
    var rank: Rank
    var suit: Suit
    func simpleDescription() -> String {
        returnThe \(rank.simpleDescription()) of \(suit.simpleDescription())”
    }
}
let threeOfSpades = Card(rank: .three, suit: .spades)
let threeOfSpadesDescription = threeOfSpades.simpleDescription()

Swift学习群

欢迎加入本人的Swift学习微信群,一同互相监督学习,我微信:reese90