微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)")

原文地址:https://www.jb51.cc/swift/319696.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐