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

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)")
    }
}

最佳答案

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

if case let .middle = seat

至:
if case .middle = seat

您的 .window 案例也是如此

关于swift - 获得 'let' 模式警告无效;子模式没有绑定(bind)任何变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53165284/

10-12 02:03