簡體   English   中英

Swift Programming Beginner:為什么在實現變量時我的循環中有錯誤?

[英]Swift Programming Beginner : Why is there an error in my loop when implementing a Variable?

當我嘗試在Xcode游樂場中運行代碼時,收到警告:

變量“ n”從未被突變; 考慮更改為“ let”常量。

首先,我正在循環的主體中更改變量,為什么它告訴我將其更改為let(恆定)數據類型。

func multiples (n : Int) {
  var n = 1

  for _ in (3 ..< 1000) {

    var n = n + 1

    let multiple3 = 3 * n

    print(multiple3)
  }
}

我在循環體內更改變量

不你不是。 循環主體中的一個是另一個n

要解決此問題,請更改

var n = n + 1

n = n + 1

3個小注意事項:

a)如果您仔細閱讀了Xcode的消息,您將了解vars的壽命和用法。 “變量'n'從未被突變;請考慮將其更改為'let'常量”

b)您在不同范圍內有兩個具有相同名稱的var

c)您輸入“ for”時,將在外部范圍中使用N計算左側的n,因此內部n始終為== 2

d)使用調試器您將看到如圖所示。

在此處輸入圖片說明

這是兩個名為n不同變量。 一個不變,並且為for循環的每個新迭代創建一個。
之所以可以使用兩個具有相同名稱的變量,是因為它們存在於不同的作用域中,並且for循環內的一個變量會在循環持續時間內暫時覆蓋循環外的變量,但僅覆蓋循環內的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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