gpt4 book ai didi

swift - 如何使用两个枚举变量实现 Identifiable

转载 作者:行者123 更新时间:2023-12-03 09:29:30 25 4
gpt4 key购买 nike

使用 Swift 5.3,如何实现 Identifiable结构上的协议(protocol)通过其身份取决于两个枚举变量的组合?
有问题的代码很简单,

struct Card: Identifiable {
let suit: Suit
let rank: Rank

enum Suit {
case spades, clubs, diamonds, hearts
}

enum Rank: Int {
case one = 1, two, three, four, five, six, seven, jack, queen, king
}
}
上述结构不符合 Identifiable协议(protocol)呢。我怎样才能将其身份作为其 suit 的唯一组合来实现?和 rank (只创建一次)?本质上,它的身份可能是“黑桃 1”或“钻石 jack ”。此外,如果可能的话,我想保留 rank作为 Int类型,以便稍后进行算术运算。先感谢您!

最佳答案

由于这种类型是由其值的组合精确定义的,因此它是它自己的标识符。所以只要 Card 是 Hashable 的,它就可以识别自己:

extension Card: Hashable, Identifiable {
var id: Self { self }
}

关于swift - 如何使用两个枚举变量实现 Identifiable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63456842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com