永远不会在 for in 循环中使用的不可变值

Immutable value never used in for in loop

我正在学习 Swift 并在 Xcode 9.2 中开始了 Playground。我有以下代码,虽然它是预期的 运行,但它给了我一条警告消息。这是什么意思?我尝试在其他地方搜索,但我无法找出为什么 return 发出警告。

for myCounter in 1...3 {

    print("My counter")

}

警告:

Immutable value 'myCounter' was never used; consider replacing with '_' or removing it

我尝试按照它说的去做,它似乎有效并且没有 return 任何警告,但为什么会有不同?

for _ in 1...3 {

    print("My counter")

}

这里有什么区别,为什么会这样?

警告告诉你你没有使用 myCounter 做任何事情,当你不关心 Swift 中的某些东西时,你使用 _ 告诉编译器你的意图就是不要使用那个值。

如果您开始使用以下值,警告也会消失:

for myCounter in 1...3 {
    print("My counter: \(myCounter)")

}

Swift 有一个优化的智能编译器。您将 1、2 和 3 分配到变量存储中,没有任何意义;你永远不会使用那个变量。所以这是浪费时间和存储空间 space。因此编译器 警告 你试图让你改进程序。你做到了。它停止了警告。