雨燕2.0警告拋出警告如果讓雨燕2.0
永恆價值「一」是從來沒有使用過;考慮用'_'或 替換它刪除它
用「_」代替if-let可以嗎?
if let a = responseString {
//Code
}
雨燕2.0警告拋出警告如果讓雨燕2.0
永恆價值「一」是從來沒有使用過;考慮用'_'或 替換它刪除它
用「_」代替if-let可以嗎?
if let a = responseString {
//Code
}
這意味着代碼永遠不會訪問/使用if-block內的常量「let a」。
如果您不需要訪問「let a」,可能根本不需要if-block。也許你使用了responseString!而不是?或者你只想執行你的代碼,如果responseString不是零(一個簡單的如果responseString!=零將做到這一點)?
在if塊之後,「let a」a將被標記爲垃圾回收,或者在編譯期間被標記爲在if塊之後被刪除(不確定這一點)。
因此編譯器認爲這是一個好主意,更換條件,如分配
let a = responseString
會導致錯誤如果
responseString == nil
和真實在所有其他情況。
在99%的情況下使用該條件賦值來確保例如可變的變量responseString不是零或甚至更經常地自動解包它。
我見過的語法
if let _ = responseString
{
//Code
}
那隻能運行在括號內的代碼,如果responseString不是零,但不創建一個新的常數。
不知道編譯器的含義是什麼「考慮用'替換''。 Swift編譯器的錯誤和警告有時似乎沒有多大意義。
換句話說:(也許是新的編碼器更容易)
它只是說一個變量被創建,但從未使用過。 所以如果你在別的地方使用var,它會消失。 這也只是一個警告,如果需要可以忽略。
我與我的代碼有同樣的問題,我剛剛註釋掉變量的初始化,因爲它當前沒有被使用。編譯器提出的解決方案(用_替換)在您希望將該名稱的變量用於將來使用的情況下不適用。