我使用變量j打印延遲塊內其最終值,如下所示:如何避免Swift中的「變量j寫入,但從未讀過」?
func justForFun()
{
defer {let x = j; print("\(x)")}
var j = 0
for i in 1...5
{
print("\(i)")
j = i*2;
}
}
justForFun()
所以,可變Ĵ確實讀取和印刷在延遲塊內。儘管如此,PlayGround仍顯示變量j被寫入但從未讀取的警告。有沒有一種方法來啓發編譯器並消除此警告?
有沒有辦法給出一個「半滴答」標記這個答案,因爲它已經回答第一部分如果沒有其他答案,或者如果我的第二部分問題是Swift 3中的已知錯誤,我想將其轉換爲完整的勾號。 –
這是一個很好的問題。如果它沒有幫助,請不要註冊你可以等待一個答案或者試試Swift論壇或者發佈一個bug報告,看看開發者說了些什麼,看起來像是一個bug,但是我不能告訴你fo當然。 –
我已經等了四天,並將其作爲您所指定網站中的一個錯誤提交。我完全相信給你完整的刻度標記。 –