跳到主要内容

变量

1.声明变量

1.1 标准格式

1.1.1 var关键字定义变量

格式

说明

变量声明以关键字 var 开头,后置变量类型,行尾无需分号

var关键字可以用于声明全局变量

var 变量名 变量类型

示例

var name string

1.2 批量格式

var (
a int
b string
c []float32
d func() bool
e struct{
x int
}
)

2.初始化变量

说明

go语言再声明变量时,自动对变量对应的内存区域进行初始化操作,每个变量会初始化其类型的默认值,例如

  • 整型和浮点型变量的默认值为0
  • 字符串变量的默认值为空字符串
  • 布尔型变量默认值为 false
  • 切片、函数、指针变量默认值为 nil

2.1 标准格式

格式

var 变量名 类型 = 表达式

示例

var hp int = 100

2.2 编译器推导类型格式

格式

说明

在标准格式的基础上,将int省略后,编译器会尝试根据等括号右边的表达式推导hp变量的类型

var hp = 100

示例

var attack = 40
var damageRate float32 = 0.17
var name = xiaoming

2.3 短变量声明并初始化

var变量声明还有一种更为精简的写法,这是go语言的推导声明写法,编译器会自动根据右边表达式的值推断出相对应的类型

格式

说明

在函数内部,可以使用更简略的 := 方式声明并初始化变量

由于使用了 := ,而不是赋值的 = ,因此推导声明写法的左值变量必须是咩有定义过的变量,若定义过,将会发生编译错误

短变量只能用于声明局部变量,不能用于声明全局变量

变量名 := 表达式

示例

hp := 10

错误示例

package main

import "fmt"

func main() {
// 声明变量
var hp int

// 再次声明并赋值
hp := 10

fmt.Println(hp)
}

执行报错

no new variables on left side of :=

3.匿名变量

匿名变量就是没有名字的变量

匿名变量的表现是一个 _ 下划线,使用匿名变量时,只需要在变量声明的地方使用 _ 替换即可

示例