Swift枚举关联值匹配Switch语句时消除编译器警告的方法
解决Swift枚举关联值switch分支的
'let' pattern has no effect警告 嘿,这个警告的原因很明确——你在switch分支里写的let _完全是多余的操作:_本身就代表“忽略这个关联值,不需要绑定到变量”,而let是用来声明绑定变量的,这俩放一起就会让编译器觉得困惑,自然抛出警告啦。
这里有两种简单的修改方式可以消除警告:
方法一:移除多余的let关键字
直接把第二个关联值的let _改成_,因为我们根本不需要绑定这个值,只需要忽略它就行:
var entry0XValue: Float { switch self { case .entry0(let x, _): return x default: return 0 } }
方法二:使用统一的let绑定语法(Swift 5.1+)
如果你的项目用的是Swift 5.1及以上版本,还可以把let提到枚举case外面,写法更简洁统一:
var entry0XValue: Float { switch self { case let .entry0(x, _): return x default: return 0 } }
两种写法都能达到同样的效果,而且完全符合Swift的语法规范,编译器也不会再抛出警告啦。
内容的提问来源于stack exchange,提问作者Shaun Budhram
相关产品推荐
相关产品推荐

