Swift 将枚举类型值分配给属性时获取开关语句错误

Swift 将枚举类型值分配给属性时获取开关语句错误,swift,Swift,我试图使用switch语句将枚举值类型分配给结构属性。我相信我已经正确地编写了语法(在每个case语句之后都有一个“:”),但是,“default:”语句仍然有一个错误。错误内容如下: “应为:'案例'之后为' 有人知道这是什么原因吗 我不知道还能尝试什么 struct Town { enum Size { case small case medium case large case unknown }

我试图使用switch语句将枚举值类型分配给结构属性。我相信我已经正确地编写了语法(在每个case语句之后都有一个“:”),但是,“default:”语句仍然有一个错误。错误内容如下: “应为:'案例'之后为' 有人知道这是什么原因吗

我不知道还能尝试什么

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