Swift“h”必须绑定在每个模式错误中 – 切换问题
发布时间:2020-12-14 04:39:28 所属栏目:百科 来源:网络整理
导读:switch语句中的这个错误的原因是什么?“h必须绑定在每个模式中”? 我基本上试图将h用作小时变量,确保它不是nil(因为小时最初是一个可选值,然后看它是否大于17).我知道我在某个地方做错了什么,但那个讨厌的
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 true default: 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") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |