如果在 Swift 2.0 中发出警告

if let warning in Swift 2.0

Swift 2.0 发出警告

Immutable value 'a' was never used; Consider replacing it with '_' or removing it

用“_”替换if-let可以吗?

if let a = responseString {  
    //Code
}

我看到的语法是

if let _ = responseString 
{
  //Code
}

如果 responseString 不为 nil,则仅运行大括号内的代码,但不会创建新常量。

不确定 "Consider replacing it with ''" 编译器的含义。 Swift 编译器的错误和警告有时似乎没有多大意义。

这意味着代码从未访问/使用if-块内的常量"let a"。

如果您不需要访问 "let a",您可能根本不需要 if 块。也许您使用 responseString! 代替?或者你只想在 responseString 不为 nil 时执行你的代码(一个简单的 if responseString != nil 就可以执行)?

在 if 块之后,"let a" a 将在编译期间标记为垃圾收集或标记为在 if 块之后删除(对此不确定)。

因此编译器认为替换条件是个好主意,因为赋值

let a = responseString 

如果

将导致错误
responseString == nil

在所有其他情况下都是正确的。

在 99% 的情况下使用此条件分配以确保例如可为 nillable 的变量 responseString 不是 nil 甚至更频繁地自动即时解包它。

换句话说:(对于新程序员来说可能更容易)

这只是说其中一个变量已创建但从未使用过。 因此,如果您在其他地方使用 var a,它就会消失。 这也只是一个警告,如果需要可以忽略。

我的代码也有同样的问题,我只是注释掉了变量的初始化,因为它当前没有被使用。编译器建议的解决方案(替换为 _)在您希望将来使用该名称的变量的情况下是不合适的。