又一个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/