gpt4 book ai didi

将变量声明为可选值时,Swift 枚举没有名为 'rawValue' 的成员

转载 作者:搜寻专家 更新时间:2023-10-31 23:04:52 24 4
gpt4 key购买 nike

我正在查看 Swift 编程语言,我遇到了一个问题,我无法区分它是否是 Lauguage 的问题(我使用的是 Xcode 6.1 版(6A1052c)):

enum Rank: Int {
case Ace = 1
case Two, Three, Four, Five
func simpleDescription() -> String {
switch self {
case .Ace: return "Ace"
default: return String(self.rawValue)
}
}
}

var rank: Rank?
rank = Rank(rawValue: 2)
println(rank.rawValue)

在最后一行,它抛出一个错误:'Rank?'没有名为 rawValue``

的成员

但是如果像var rank: Rank这样声明变量,并将rank = Rank(rawValue: 2)修改为rank = Rank(rawValue: 2 )!,可以通过,没有报错。

最佳答案

从 rawValue 实例化一个枚举返回一个可选的枚举,Rank? 在你的例子中。为了访问可选枚举的属性,您必须将其解包,以获得 Rank

var rank: Rank?
rank = Rank(rawValue: 2)
if(rank != nil){
println(rank!.rawValue)
}

您还可以将 Rank 输入为 Rank 而不是 Rank?

var rank: Rank
rank = Rank(rawValue: 2)! //make sure you know this will always return a Rank. If it's nil your program will crash
println(rank.rawValue)

关于将变量声明为可选值时,Swift 枚举没有名为 'rawValue' 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26451696/

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