变量
声明变量
语法:
var name type
var name1, name2 type
// 声明后赋值
name = typeValue
name1, name2 = typeValue1, typeValue2
声明变量并初始化
语法:
var name type = initialValue
var name1, name2 type = initialValue1, initialValue2
类型推导
语法:
var name = initialValue
var name1, name2 = initialValue1, initialValue2
如果一个变量有初始值,Golang 将自动使用该初始值来推断该变量的类型。因此,如果一个变量有初始值,变量声明中的类型可以省略。
简短声明
语法:
name := initialValue
对简短声明,有如下一些规则:
- 简短声明只能出现在函数体中;
- 简短声明要求必须给声明的每一个变量都提供初始值;
- 简短声明要求在
:=
的左边必须至少有一个变量是新声明的。
package main
import "fmt"
func main() {
// 声明变量 a, b
a, b := 20, 30
fmt.Println("a is", a, "b is", b)
// b 已经被声明, c 是新声明的变量,本条语句包含一个新声明的变量
b, c := 40, 50
fmt.Println("b is", b, "c is", c)
// 重新赋值, 若为 b, c := 80, 90 则报错
b, c = 80, 90
fmt.Println("changed b is", b, "c is", c)
}
注意
- Go对于已声明但未使用的变量会在编译阶段报错
_
(下划线)是个特殊的变量名,任何赋予它的值都会被丢弃。
常量
语法:
const constantName = value
//如果需要,也可以明确指定常量的类型:
const Pi float32 = 3.1415926
分组
var (
name1 type1
name2 type2
)
var (
name1 = initialValue1
name2 = initialValue2
)
const (
name1 = initialValue1
name2 = initialValue2
)