Swift 2:永远不会使用不可变值X考虑用'_'替换

jam*_*rez 26 swift2

在我的旧代码的几个案例中,我收到警告:

考虑用'_'代替不可变值X

例如,如果我检查具有关联对象的枚举(但在这种情况下我不使用该对象),或者如果我使用'If let'构造来检查对象是否为零,则通常会发生这种情况. .

通过这些警告并做出改变并没有太多困扰我,但我想知道是否有人知道为什么这是建议 - 为什么还要警告我们这个?它会以任何方式影响性能吗?

Abh*_*ore 20

考虑用'_'代替不可变值X

发出此警告是因为您在声明后未使用变量.只是忽略警告并继续编写代码并使用你的对象,它就会消失.

Swift 2是一种非常敏感的语言,它会在每一步都给你警告.

我在这里解释一个简单的任何对象警告演示: - 1.永远不会使用不可变值X考虑用'_'代替 它,当你不使用对象并仅声明它时它会出现.例如: -

var nameImg:String = "";
Run Code Online (Sandbox Code Playgroud)

2. 变量'nameImg'被写入,但从未读过. 当你为对象分配任何值但你仍然没有在任何其他对象中使用它时,它会出现.EX-

  var nameImg:String = "";
                    if(action==1){
                        nameImg  = "navTab";
                    }
                    else{
                        nameImg  = "back";
                    }
Run Code Online (Sandbox Code Playgroud)

3. 如果您为对象分配任何值并在另一个对象中使用它,则不会出现警告 ;).

EX-

 var nameImg:String = "";
                    if(action==1){
                        nameImg  = "navTab";
                    }
                    else{
                        nameImg  = "back";
                    }


                    //back & menu btn
                    let btnBack = UIButton(type: UIButtonType.Custom);
                    btnBack.setImage(UIImage(named:nameImg), forState: UIControlState.Normal);
                    btnBack.sizeToFit();
Run Code Online (Sandbox Code Playgroud)


Qby*_*yte 11

建议进行这些更改,因为如果您根本不使用这些变量,则应考虑将其替换为"_".所以你(和其他人)以后可以更快地理解你的意图.

在性能方面,它可能只是一个小改进,你根本无法注意到.在编译和优化代码期间也会出现同样的情况.