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)
这很简单。在这三种情况下,只有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情况也一样