为什么 Go 中的 for 循环中不能使用 'var'?

我是 Go 新手,有一个问题。


据我所知,以下两个片段基本相同。


i := 0


var i = 0

但是为什么不能var在for循环中使用语句呢?


for var i = 0; i < 10; i++ {

    //do something

}

将会有一个syntax error: var declaration not allowed in for initializergo


为什么要这样设计呢?这里面有什么想法吗?


如果有人能告诉我,我将不胜感激。


慕少森
浏览 44回答 1
1回答

一只名叫tom的猫

这种形式的for子句中的初始化语句不能是任何类型的语句,但必须是“简单语句”(此类语句的一种情况是您看到的“短变量声明” )。至于原因,就像 Go 语言中的许多其他选择一样:保持您的代码可读并且看起来像其他开发人员的 Go 代码:如果您可以在此处放置任何类型的语句,则循环并不总是很容易for识别(并且会混合循环初始化以外的问题)。
打开App,查看更多内容
随时随地看视频慕课网APP