我是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变为不可用的数据类型。
答案 0 :(得分:3)
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是一种块结构化编程语言:
int
是predeclared identifier,并在Universe块中隐式声明。
在函数内声明的变量标识符的范围从声明的结尾开始,并在最内层的包含块的末尾结束。
声明
var int int = 8
使用预先声明的int
类型来声明变量标识符int
,隐藏预先声明的标识符:Variable shadowing。
答案 1 :(得分:0)
Go int是一个预定义的标识符,因此不能用作变量名。所以将第一个变量重命名为其他任何变量。比如num1,它会编译!
package main
import "fmt"
func main() {
var num1 int = 8
fmt.Println(num1)
var number int = 10
fmt.Println(number)
}
希望这有帮助!