第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何枚舉String類型的枚舉?

如何枚舉String類型的枚舉?

天涯盡頭無女友 2019-07-27 15:22:52
如何枚舉String類型的枚舉?enum Suit: String {     case spades = "?"     case hearts = "?"     case diamonds = "?"     case clubs = "?"}例如,我該怎么做:for suit in Suit {     // do something with suit    print(suit.rawValue)}結(jié)果示例:? ? ? ?
查看完整描述

3 回答

?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

Swift 4.2+

Swift 4.2開始(使用Xcode 10),只需添加協(xié)議一致性即可CaseIterableallCases以下方面受益:

extension Suit: CaseIterable {}

然后,這將打印所有可能的值:

Suit.allCases.forEach {
    print($0.rawValue)}

與早期Swift版本的兼容性(3.x和4.x)

只是模仿Swift 4.2的實現(xiàn):

#if !swift(>=4.2)public protocol CaseIterable {
    associatedtype AllCases: Collection where AllCases.Element == Self
    static var allCases: AllCases { get }}extension CaseIterable where Self: Hashable {
    static var allCases: [Self] {
        return [Self](AnySequence { () -> AnyIterator<Self> in
            var raw = 0
            var first: Self?
            return AnyIterator {
                let current = withUnsafeBytes(of: &raw) { $0.load(as: Self.self) }
                if raw == 0 {
                    first = current                } else if current == first {
                    return nil
                }
                raw += 1
                return current            }
        })
    }}#endif


查看完整回答
反對 回復 2019-07-27
  • 3 回答
  • 0 關(guān)注
  • 2134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號