[英]if let warning in Swift 2.0
Swift 2.0引發警告
從未使用不可變值'a'; 考慮將其替換為“ _”或將其刪除
將if-let替換為“ _”可以嗎?
if let a = responseString {
//Code
}
這意味着該代碼從未在if-塊內訪問/使用過常量“ let a” 。
如果您不需要訪問“讓a”,則可能根本不需要if塊。 也許您使用了responseString! 代替? 還是只在responseString不為nil的情況下才執行代碼(如果responseString!= nil可以做到這一點,這很簡單)?
在if塊之后,將在編譯期間在if塊之后將“ let a” a標記為垃圾回收或標記為將其刪除(不確定)。
因此,編譯器認為替換條件是一個好主意,因為賦值
let a = responseString
如果將導致錯誤
responseString == nil
在其他所有情況下都是如此。
在99%的情況下都使用此條件分配,以確保例如可設置變量的responseString不為nil或更頻繁地自動對其進行自動包裝。
我看到的語法是
if let _ = responseString
{
//Code
}
如果responseString不為nil,那只會在花括號內運行代碼,但不會創建新的常量。
不確定編譯器通過“考慮將其替換為”來表示什么。 Swift編譯器的錯誤和警告有時似乎沒有多大意義。
換種說法:(對於新編碼員來說可能更容易)
只是說其中一個變量已創建但從未使用過。 因此,如果在其他地方使用var a,它將消失。 這也只是警告,如果需要可以忽略。
我的代碼也遇到了同樣的問題,我只是注釋掉了變量的初始化,因為當前尚未使用它。 如果您希望使用該名稱的變量供將來使用,則編譯器建議的解決方案(用_代替)是不合適的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.