Go 语言 变量 在定义的时候,如果没有初始化,那么会被赋一个默认值。Go 语言 在声明变量的同时,也可以给变量赋予一个初始值。
变量名 := 表达式
我们可以直接使用 :=
的形式来定义变量并初始化,:=
形式的变量声明,左值变量必须是没有定义过的变量,否则会报错。
使用 := 的形式定义 局部变量,如果定义的是数字类型,那么默认类型为 int
package main
import (
"fmt"
"reflect"
)
func main() {
max := 100
min := 0
fmt.Println("Hello 嗨客网(www.haicoder.net)")
fmt.Println("Max =", max, "Min =", min)
fmt.Println("Type Max =", reflect.TypeOf(max), "Type Min =", reflect.TypeOf(min))
}
程序运行后,控制台输出如下:
我们可以看到,程序正确输出了我们定义的两个变量的值。
使用 := 的形式定义局部变量,如果定义的是字符串类型,那么默认类型为 string
package main
import (
"fmt"
"reflect"
)
func main() {
name := "HaiCoder"
site := "www.haicoder.net"
fmt.Println("Hello 嗨客网(www.haicoder.net)")
fmt.Println("Name =", name, "Site =", site)
fmt.Println("Type name =", reflect.TypeOf(name), "Type site =", reflect.TypeOf(site))
}
程序运行后,控制台输出如下:
我们可以看到,程序正确输出了我们定义的 Name 和 Site 两个变量的值。
已定义过的变量,使用 := 的形式定义再次定义,则程序会报错。
package main
import (
"fmt"
)
func main() {
var name = "HaiCoder"
name := "HaiCoder"
fmt.Println("Hello 嗨客网(www.haicoder.net)")
fmt.Println("Name =", name)
}
程序运行后,控制台输出如下:
我们可以看到,程序编译报错,因为变量 name
我们一开始已经定义过了,所以下面使用 :=
形式声明变量会报错。
Go 语言是静态类型语言,因此变量(variable)是有明确类型的。编译器会检查函数调用中,变量类型的正确性。
使用短变量声明的格式定义变量的语法为:变量名 := 表达式
。