Go 变量

目录

什么是变量

变量命名规范

变量声明

显式的完整声明

短类型声明

变量值

存储

生命周期

类型

作用域

多变量赋值


什么是变量

使用一个名称来绑定一块内存地址,该内存地址中存放的数据类型由定义变量时指定的类型决定,该内存地址里面存放的内容可以改变。

变量命名规范

  • 由大小写字母、数字和下划线组成(Unicode字符也可以作为变量名,但不推荐这样使用)
  • 变量名必须以字母开头
  • 推荐使用驼峰的命名规范,命名变量名

变量声明

显式的完整声明

声明语法

var <variableName> <type> [= <value>]

在上面的声明语法中,var关键字用于变量声明。variableName是自定义的变量名称标识符,而type是变量对应的数据类型。可选的value是变量的初始值,初始值可以是字面量,也可以是其它变量名,还可以是一个表达式。如果不指定初始值,Go默认将该变量初始化为类型的零值。

示例

下面的例子中,声明一个整型变量number,且number变量的初始值为23。

var number int = 23

短类型声明

声明语法

<variableName> := <value>

短类型声明只能用在函数和方法内,Go编译器会根据 ":="右边的值进行类型推断。

示例

例如在函数中声明一个变量。

func demo() {
    a := 1

    // do something...
}

变量值

变量实际指向的是地址里存放的值,变量的值具体怎么解析是由变量的类型来决定的。在初始化变量值时,我们可以使用字面量,也可以使用其它的变量名。

存储

Go编译器使用逃逸技术能够自动为变量分配空间。存储空间可能在栈上,也可能在堆上。

生命周期

Go提供自动内存管理,通常Go的使用者无需关注变量的生命周期。

类型

Go是强类型静态语言,每个变量都对应一个类型。类型决定了变量存储的值的解析方式、支持的操作和运算集。

作用域

Go内部使用统一的命名空间对变量进行管理,每个变量都有一个唯一的名字,包名是这个名字的前缀。

多变量赋值

Go允许多变量赋值。多变量赋值操作可以是不同类型的变量:

var variable1, variable2 = 3, "hi"
variable4, variable5 := '3', []string{"6"}

在进行多变量赋值操作的过程中,首先计算出所有右值,然后再依次完成赋值操作:

x, y := 1, 2
x, y = y+3, x+2 // 先计算出右值y+3, x+2,然后再对x、y变量赋值
// 5, 3

未使用错误

编译器将未使用的局部变量当作错误:

package main

func main() {
	variable1 := 3   // build error: variable1 declared but not used
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值