我正在尝试使用switch语句将枚举值类型分配给结构属性。我相信我已经正确编写了语法(在每个case语句之后带有“:”),但是,在“ default:”语句上仍然出现错误。该错误显示为: “在'case'之后为':'” 有谁知道是什么原因造成的?
我不确定还能尝试什么。
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
}
}()
}
预期结果:无错误 实际结果:错误(即使存在“:”)
答案 0 :(得分:1)
在关键字case
之前不需要关键字default
。这就是switch
语句在Swift
中的工作方式。
只需在case
之前删除default
即可解决您的问题。
switch number {
case 1:
break
case default:
break
}
有效代码:
switch number {
case 1:
break
default:
break
}
请注意,case
之前没有default
关键字。
switch
中Swift
语句如何工作的更多信息,请阅读official documentation。
答案 1 :(得分:0)
您无需检查任何内容,只需要在无人满意的情况下进行处理即可。为此,只需使用default
关键字。
default:
return .unknown