【问题标题】:Why can't I use i++ in for loop in Swift为什么我不能在 Swift 的 for 循环中使用 i++
【发布时间】:2026-02-06 17:05:02
【问题描述】:

我知道 Swifti++++i 之间的区别。正如官方文档所说,最好使用++i递增i

但我想知道为什么在 for 循环 中使用 i++ 会出现语法错误。 代码如下所示:

for var i = 0; i < 10; i++{
    println("hello")
}

但是,在其他情况下可以使用i++++i。 for循环有什么限制吗?

【问题讨论】:

    标签: swift for-loop operators


    【解决方案1】:

    错误说:

    运算符不是已知的二元运算符

    原因很简单:需要在运算符和左大括号之间加一个空格:

    i++ { 
       ^
    

    没有它,编译器会将++{ 作为二元运算符,并以iprint("hello") 作为其参数

    增量运算符的前缀版本不会出现问题,因为i 变量明确区分了++ 运算符和大括号(字母和数字不能用于定义运算符)。

    【讨论】:

    • @xingyuzhang 很高兴知道 :) 如果它确实解决了问题,请记住将答案标记为解决方案
    • 作为一般规则,Swift 要求运算符周围有空格,而 C 语言(C、C++、Objective-C)则不需要。这有时也会让我感到困惑,而且你从 Swift 中得到的神秘错误信息让你更难找出问题所在。我希望随着编译器的发展,错误会变得更清晰,更有帮助。
    最近更新 更多