美文网首页
23.Swift嵌套类型

23.Swift嵌套类型

作者: biyu6 | 来源:发表于2018-08-20 14:17 被阅读0次
//Swift 允许定义嵌套类型,在支持的类型中定义嵌套的枚举、类和结构体
//要在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的{}内,而且可以根据需要定义多级嵌套。

//嵌套类型实践:
struct BlackjackCard { //结构体,用来模拟扑克牌点数
    enum Suit: Character {//嵌套的 Suit 枚举   描述扑克的四种花色
        case spades = "♠️", hearts = "💖", diamonds = "♦️", clubs = "♣️"
    }
    enum Rank: Int { //嵌套的 Rank 枚举   描述扑克从 ace ~10 以及 J、Q、K 这13种牌
        case two = 2, three, four, five, six, seven, eight, nine, ten // 用int类型的原始值表示2~10的牌面值
        case jack, queen, king, ace // ace牌可以表示 1 或者 11
        struct Values { // 嵌套在Rank中的枚举
            let first: Int, second: Int?
        }
        var values: Values {
            switch self {
            case .ace:
                return Values(first: 1, second: 11)
            case .jack, .queen, .king:
                return Values(first: 10, second: nil)
            default:
                return Values(first: self.rawValue, second: nil)
            }
        }
    }
    
    //BlackjackCard 的属性和方法
    let rank: Rank, suit: Suit
    var description: String { //描述 扑克的花色和牌面值
        var output = "花色为:\(suit.rawValue)"
        output += "牌面值为: \(rank.values.first)"
        if let second = rank.values.second{
            output += " 或 \(second)"
        }
        return output
    }
}
//没有自定义构造器的 结构体 ,有默认的成员构造器,可以用来初始化
let theAceOfSpades = BlackjackCard(rank: .ace, suit: .spades)
print("C------牌面描述为:\(theAceOfSpades.description)")


//引用嵌套类型
//在外部引用嵌套类型时,在嵌套类型的类型名前面加上其外部类型名作为前缀
let heartsSymbol = BlackjackCard.Suit.hearts.rawValue
print("C-----引用嵌套类型的值:\(heartsSymbol)")

相关文章

  • 23.Swift嵌套类型

  • Swift学习笔记十五之嵌套类型

    1、类型嵌套//可以在允许类型嵌套的类型中嵌套枚举、类、结构体,并且支持多层嵌套2、值类型的嵌套struct Ne...

  • Swift 5.1 (18) - 嵌套类型

    Swift允许定义嵌套类型,在它们所支持类型的定义中支持嵌套枚举,类和结构。类型可以嵌套到所需的级别。 嵌套类型使...

  • swift 嵌套类型

    嵌套类型实践示例官方demo 引用嵌套类型

  • Swift 5.1 (18) - 嵌套类型

    Swift 5.1 (18) - 嵌套类型Swift 5.1 (18) - 嵌套类型

  • Swift---20.嵌套类型

    嵌套: Swift中,允许在一个类型中嵌套另一个类型 引用嵌套类型中的类: Swift中,当我们想要访问嵌套内的类...

  • swift嵌套类型

    swift允许在一个类型中嵌套定义另一个类型,即嵌套类型。可以在枚举类型、类和结构体中定义支持嵌套的类型,可以定义...

  • 嵌套类型

  • 19、【Swift】嵌套类型

    在一个类型中嵌套另一个类型,将嵌套类型的定义写在其外部类型的 {} 内,而且可以根据需要定义多级嵌套 使用场景:工...

  • Swift Tour Learn (十) -- Swift 语法

    本章将会介绍 定义一个类层次作为例子检查类型向下转型Any 和 AnyObject 的类型转换嵌套类型实践引用嵌套...

网友评论

      本文标题:23.Swift嵌套类型

      本文链接:https://www.haomeiwen.com/subject/trqliftx.html