我是 Go 语言的新手,正在尝试 GO 中的几个示例。
在 GO 中 int 不是关键字,所以我声明了一个名称为 int
的变量。
package main
import "fmt"
func main() {
var int int = 8
fmt.Println(int)
var number int = 10
fmt.Println(number)
}
现在,当我构建这段代码时,出现以下错误:
[dev@go test]$ go build variables.go
# command-line-arguments
./variables.go:8: int is not a type
我试图理解为什么会出现这种情况,以及 var int int
做了什么使得 int 成为不可用的数据类型。
最佳答案
package main
import "fmt"
func main() {
// int is a predeclared type identifier
var int int = 8
// int is a variable identifier
fmt.Println(int)
// error: int is not a type
var number int = 10
fmt.Println(number)
}
您正在隐藏 int
标识符。
参见 The Go Programming Language Specification .
Go 是一种 block 结构化编程语言:
int
是 predeclared identifier并在 universe block 中隐式声明。
在函数内声明的变量标识符的范围从声明的末尾开始,到最里面的包含 block 的末尾结束。
声明
var int int = 8
使用预先声明的 int
类型来声明变量标识符 int
,隐藏预先声明的标识符:Variable shadowing .
关于go - Go 中的 int 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45836683/