for-loop - for循环init语句中的变量声明

标签 for-loop go

又一个golang初学者的问题:

我会写:

for i := 0; i < 10; i++ {}

但是如果我希望 i 是一个特定的类型,如 int64,显然我不应该这样写:

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

令我惊讶的是,我无法在 for 循环的开始语句中指定类型。我需要写这样的东西:

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

我在这里漏掉了一点吗?有什么解释吗?

最佳答案

for 循环的语言规范指出:init 语句可以是一个简短的变量声明,它是 i := 0 形式的赋值,但不是var i = 0 形式的声明。至于这背后的原因——我猜是语言的简单性。看这里:http://golang.org/ref/spec#For_statements

顺便说一句,你可以做这样的事情:

for  i := int64(0); i < 10; i++ {
   // i here is of type int64
}

关于for-loop - for循环init语句中的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27960404/

相关文章:

javascript - 循环遍历多维数组以迭代javascript中的每个项目

pointers - 如何在go中定义一个指针,然后将这个指针传递给一个func来改变它的值?

python - 类型错误 : unsupported operand type(s) for +: 'NoneType' and 'float'

java - 用java计算利率

javascript - 对数组进行循环和计数

python - pop() 函数在 for 循环中无法正常运行

相当于 scanf %[^\n] 的语言

string - 字符串中的Golang rune 或如何转换?

time - 在 Go 中获取 Unix 时间戳的正确方法是什么

arrays - 声明一个常量数组