Swift 3静默地允许遮蔽参数

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

var a: Int? = 3
f(&a)
print("\(a)")

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

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

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

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

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

func f(_ x: inout Int?) {
    var y: Int?
    y = 105
    if x! < 1000 
{
    x = y
}
}

var a: Int? = 3
f(&a)
print("\(a)")

猜你在找的Swift相关文章