Swift“h”必须绑定在每个模式错误中 – 切换问题

Swift“h”必须绑定在每个模式错误中 – 切换问题,第1张

概述switch语句中的这个错误的原因是什么?“h必须绑定在每个模式中”? 我基本上试图将h用作小时变量,确保它不是nil(因为小时最初是一个可选值,然后看它是否大于17).我知道我在某个地方做错了什么,但那个讨厌的小’必须在每个模式中绑定’错误是什么? 谢谢 let date = NSDate() let calendar = Calendar.current let switch语句中的这个错误的原因是什么?“h必须绑定在每个模式中”?

我基本上试图将h用作小时变量,确保它不是nil(因为小时最初是一个可选值,然后看它是否大于17).我知道我在某个地方做错了什么,但那个讨厌的小’必须在每个模式中绑定’错误是什么?

谢谢

let date = NSDate()        let calendar = Calendar.current        let components = calendar.dateComponents([.hour],from: date as Date)        let hour = components.hour        switch hour {        case let h,(h as Int) != nil,h >= 17:            return true        default:            return false        }
解决方法 你可能需要写这样的东西:

switch hour {case let h? where h >= 17:    return truedefault:    return false}

或者,如建议的那样,使用if语句:

if let h = hour,h >= 17 {    return true} else {    return false}

或者,简单地说:

return hour != nil && hour! >= 17

在此模式中经常会出现错误消息:

enum MyEnum {    case patternA(Int)    case patternB(Int)    case patternC}let me = MyEnum.patternB(30)switch me {case .patternA(let h),.patternB(let h),.patternC: //<-    print("A or B with h,or C")default:    print("this may never happen")}
总结

以上是内存溢出为你收集整理的Swift“h”必须绑定在每个模式错误中 – 切换问题全部内容,希望文章能够帮你解决Swift“h”必须绑定在每个模式错误中 – 切换问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1006227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存