前端之家收集整理的这篇文章主要介绍了
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)")