gpt4 book ai didi

具有关联值的 Swift 枚举

转载 作者:行者123 更新时间:2023-11-28 06:39:22 24 4
gpt4 key购买 nike

到目前为止,我一直在使用 rawValue 来根据大小写获取文本,如本例所示:

enum Level1: String {
case question1 = "q1"
case question2 = "q2"
case question3 = "q3"
}

print(Level1.question1.rawValue)

但现在我也想知道答案。我试图让它与关联值一起工作,但我不知道如何将值分配给属性,甚至不知道如何可能。例如:questionText = "q1", answerText = "a1"。

enum Level2 {
case question1(questionText: String, answerText: String);
case question2(questionText: String, answerText: String);
case question3(questionText: String, answerText: String);
}

最佳答案

具有关联值的枚举不能是字符串类型。但是他们可以实现例如CustomStringConvertible 协议(protocol):

enum ScreenName: CustomStringConvertible {

case Category(categoryId: String, categoryName: String)
...

var description: String {
switch (self) {
case let .Category(_, categoryName):
return "Category - \(categoryName)"
...
}
}
}

然后你可以调用 ScreenName.Category(categoryId: "1", categoryName: "products").description 你会得到 "Category - products"

关于具有关联值的 Swift 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38392774/

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