Swift 3静默地允许遮蔽参数

前端之家收集整理的这篇文章主要介绍了Swift 3静默地允许遮蔽参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在切换到 Swift,我真的不高兴以下代码编译没有警告:
  1. func f(_ x: inout Int?) {
  2. var x: Int? // <-- this declaration should produce a warning
  3. x = 105
  4. if x! < 1000 {}
  5. }
  6.  
  7. var a: Int? = 3
  8. f(&a)
  9. print("\(a)")

当然,在执行时输出可选(3).

在这个例子中,x局部变量阴影x函数参数.

在项目设置中打开隐藏的本地变量警告(GCC_WARN_SHADOW)也不会产生警告.

问题:我应该如何使Swift 3编译器向我发出这样的阴影警告?

将X名称(参数值或可变)编辑为不同的名称

  1. func f(_ x: inout Int?) {
  2. var y: Int?
  3. y = 105
  4. if x! < 1000
  5. {
  6. x = y
  7. }
  8. }
  9.  
  10. var a: Int? = 3
  11. f(&a)
  12. print("\(a)")

猜你在找的Swift相关文章