Lon*_*ner 5 for-loop go variable-declaration
请参阅此代码。
package main
import (
"fmt"
)
func main() {
var arr [4]string = [4]string{"foo", "bar", "baz", "qux"}
for a, b := range arr {
fmt.Println(a, b)
}
// How can I fix this code?
/*
for x int, y string = range arr {
fmt.Println(a, b)
}
*/
}
Run Code Online (Sandbox Code Playgroud)
第一个 for 循环使用:=运算符自动推导出aand的类型b。但是如果我想明确指定循环变量的类型呢?我尝试这样做是在注释代码的第二个块中,这当然因以下错误而失败。
# command-line-arguments
./foo.go:15: syntax error: unexpected name, expecting {
./foo.go:18: syntax error: unexpected }
Run Code Online (Sandbox Code Playgroud)
你能不能帮我解决的第二个代码块,这样我可以指定类型的x和y明确?
不幸的是,语言规范不允许您在 for 循环中声明变量类型。你能得到的最接近的是:
var a int
var b string
for a, b = range arr {
fmt.Println(a, b)
}
Run Code Online (Sandbox Code Playgroud)
但通常如果你给变量赋予有意义的名称,它们的类型也会很清楚:
for index, element := range arr {
fmt.Println(index, element)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2259 次 |
| 最近记录: |