Go中的int数据类型

时间:2017-08-23 10:05:15

标签: go int

我是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变为不可用的数据类型。

2 个答案:

答案 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是一种块结构化编程语言:

Blocks

Declarations and scope

intpredeclared 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)
}

希望这有帮助!