Go语言中的变量和常量是编码中不可缺少的一部分,它是用来存储程序执行过程中的值或结果。

变量

变量是用于存储程序中的可变的值或结果。变量的命名只能有字母、数字、下划线组成,且只能由字母或下划线开头。

变量声明

变量必须先声明、后使用,且声明后必须使用。

// 声明单个变量,格式:var 变量名 变量类型
var name string
// 声明多个同类型变量
var name1, name2 string
// 批量声明多个不同类型的变量
var (
    name3 string
    age int
)

变量赋值

上面声明过的变量,这里给其赋值:

name = "alice" // 单个赋值
name1, name2 = "bob", "jan" // 多个变量赋值

当然,也可以声明变量时直接赋值:

// 单个变量声明并赋值
var name4 string = "alice" 
// 多个同类型变量声明并赋值
var name5, name6 string = "bob", "jan"
// 多个不同类型的变量声明和赋值
var (
    name7 string = "alice"
    age int = 18
)

类型推导

变量类型推导是指,变量声明和赋值时不指定变量类型,程序会根据值自动推导其类型。注意:这种用法只能写在函数体内。

// 在声明变量时直接赋值,变量类型自动根据值推断其类型
// 因为值为字符串,所以name8的类型就是字符串类型
name8 := "alice"
// 多个变量赋值,自动推导name9类型为字符串,age9类型为int
name9, age9 := "alice", 18

常量

常量是用于存储程序中的不可变的值或结果。常量的命名和变量的命名规则一样。与变量不同的是,常量在声明时必须赋值,且赋值后不能修改其值。

const pi float32 = 3.14 // 声明单个常量
const n1, n2 int = 0, 1 // 声明多个同类型的变量
const ( // 批量声明
    m1 int = 1 // 指定类型
    m2 = 2 // 不指定类型,自动推导
)

iota

iota 是Go语言中常量自增计数器。

const (
    l0 = iota // 初始值为0
    l1 // l1自动递增,它的值是1
    l2 // l2的值是2
)