我可以在Swift中用枚举值替换String变量吗? 例如:
let machineWin = "MACHINE WIN!!!"
let userWin = "USER WIN!!!"
let noneWin = "IT'S A TIE!!!"
如果我想用枚举替换那些常量
答案 0 :(得分:1)
在Swift中ordinal
没有内置的可比选项。
您可以使用CaseIterable
来获取enum
的{{1}}值。
index
有关更多信息,请参见The Swift Programming Language: Enumeration。
答案 1 :(得分:1)
我个人将创建一个简单的枚举。但是我不会倾向于给这个枚举一个String
raw value。如果有的话,这些似乎是用户界面的消息。我会将它们移到某些计算的属性中(如果您选择为游戏选择一种以上的语言,我们也可能将其本地化)。
enum Winner {
case machine
case user
case tie
}
extension Winner {
var localizedMessage: String {
switch self {
case .machine: return NSLocalizedString("MACHINE WIN!!!", comment: "Winner")
case .user: return NSLocalizedString("USER WIN!!!", comment: "Winner")
case .tie: return NSLocalizedString("IT'S A TIE!!!", comment: "Winner")
}
}
}