如果在 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,它就会消失。
这也只是一个警告,如果需要可以忽略。
我的代码也有同样的问题,我只是注释掉了变量的初始化,因为它当前没有被使用。编译器建议的解决方案(替换为 _)在您希望将来使用该名称的变量的情况下是不合适的。
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,它就会消失。 这也只是一个警告,如果需要可以忽略。
我的代码也有同样的问题,我只是注释掉了变量的初始化,因为它当前没有被使用。编译器建议的解决方案(替换为 _)在您希望将来使用该名称的变量的情况下是不合适的。