簡體   English   中英

如果在Swift 2.0中讓警告

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM