Swift 将枚举类型值分配给属性时获取开关语句错误
我试图使用switch语句将枚举值类型分配给结构属性。我相信我已经正确地编写了语法(在每个case语句之后都有一个“:”),但是,“default:”语句仍然有一个错误。错误内容如下: “应为:'案例'之后为' 有人知道这是什么原因吗 我不知道还能尝试什么Swift 将枚举类型值分配给属性时获取开关语句错误,swift,Swift,我试图使用switch语句将枚举值类型分配给结构属性。我相信我已经正确地编写了语法(在每个case语句之后都有一个“:”),但是,“default:”语句仍然有一个错误。错误内容如下: “应为:'案例'之后为' 有人知道这是什么原因吗 我不知道还能尝试什么 struct Town { enum Size { case small case medium case large case unknown }
struct Town {
enum Size {
case small
case medium
case large
case unknown
}
// structure properties
let region = "South"
var population: Int = 5_422
var numberOfStoplights: Int = 4
var name: String?
lazy var townSize: Size = {
switch self.population {
case 0...10000:
return Size.small
case 10001...100000:
return Size.medium
case let pop where pop >= 100001:
return Size.large
case default: //***********ERROR: Expected ':' after 'case'
return Size.unknown
}
}()
}
预期结果:无错误
实际结果:错误(即使“:”存在)在
默认值关键字之前,您不需要案例
关键字。这就是switch
语句在Swift
中的工作方式
只需在default
之前删除case
,即可解决问题。
以下代码段无效:
switch number {
case 1:
break
case default:
break
}
有效代码:
switch number {
case 1:
break
default:
break
}
注意在default
之前没有case
关键字。
要了解更多有关switch
语句在Swift
read中的工作方式。您没有检查任何内容,只需在没有任何情况满足时处理。为此,只需使用default
关键字即可
default:
return .unknown