获得“让”模式的警告无效;子模式没有绑定任何变量

Hon*_*ney 3 enums pattern-matching swift

我正在执行以下操作,但收到以下警告:

'let' 模式无效;子模式没有绑定任何变量

enum Seat {
    case middle
    case window
    case aisle(Int)
}

let m : Seat = .middle
let w : Seat = .window
let a : Seat = .aisle(5)

let seats = [m,w,a]

for seat in seats {
    if case let .middle = seat {
        print("middle")
    }
    if case let .window = seat {
        print("window")
    }
    if case let Seat.aisle(row) = seat {
        print("able to let row be the associatedvalue of seat; its value is: \(row)")
    }
}
Run Code Online (Sandbox Code Playgroud)

Hon*_*ney 6

这很简单。在这三种情况下,只有aisle一个关联值 type Int。您的.middle&.window案例没有要提取的关联值,即没有要绑定的值。只要知道是这样就足够了。要使警告消失更改:

if case let .middle = seat
Run Code Online (Sandbox Code Playgroud)

到:

if case .middle = seat
Run Code Online (Sandbox Code Playgroud)

你的.window情况也一样