变量指向的内存可以被修改,常量指向的内存不能被修改。
变量
变量的显式声明
var a int = 1
var a int = 2*3
var a int = b
短类型声明
varName := value
:= 声明只能出现在函数内
此时Go编译器自动进行数据类型判断
Go支持多个类型变量同时声明并赋值,如:
a,b := 1,"hello"
1.变量实际指向地址里存放的值
2.Go语言提供自动内存管理,编译器使用栈逃逸技术能够自动为变量分配空间,可能在栈上也可能在堆上。
3.类型决定了该变量存储的值怎么解析,以及支持哪些操作和运算。
4.Go内部使用统一的命名空间对变量进行管理,每个变量都有一个唯一的名字。
常量
常量使用一个名称来绑定一块内存地址,该内存地址存放的数据类型由定义常量时的类型决定,并且该内存地址里面存放的内容不可以改变。
const (
c0 = iota //c0 == 0
c1 = iota //c1 == 1
c2 = iota //c2 == 2
)
//简写模式
const(
c0 = iota // c0 ==0
c1
c2
)
//分开的const语句,iota每次都从0开始
const x = iota // x == 0
const y = iota // y == 0