[toc]
任何高级语言,变量都是程序最基本的组成单位.
golang中的变量相当于给内存中一个数据的存储空间打一个记号,以后利用这个记号就可以很容易的找到这个存储空间里存放的数据.
一, 变量的基础知识
- 变量表示内存中一个存储空间,通过变量名取到的是存储空间里的值.而指针类型表示的是存储空间本身,这一点后边有专门章节讲.
- 该存储空间的名称就是变量名
- 申请变量就是申请一个内存的存储空间
- 申请变量也就是申请内存的存储空间,申请的时候应该指名该存储空间的名称(变量名)以及该存储空间是用来存放什么数据类型(变量的数据类型)的,因为不同的数据类型需要的内存大小不一样,比如申请一个8位的整数的存储空间只需要一个字节,而申请一个64位的整数的存储空间需要8个字节.
- 申请的存储空间的名称就是变量名,申请存储空间用来存放的数据类型就是变量的数据类型
- 通过变量名取到的不是这个内存存储空间,而是存储空间里边的值.指针是指的这个
二,变量的分类
- 基本数据类型:
- 数值型
- 整数类: int, int8, int16, int32, int64, uint, uint8, uint16
uint32, uint64, byte等 - 浮点类型: float32, float64
- 复数类型: complex
- 整数类: int, int8, int16, int32, int64, uint, uint8, uint16
- 字符型: go没有专门的字符型,字符通过utf8编码用整数来存放
- 布尔型: bool,值只有true和false两种
- 字符串: string
- 数值型
- 派生和复杂数据类型
有指针,数组, 结构体, 管道,函数,切片,接口,map等等
三, 变量的使用步骤
- 声明变量,也叫定义变量,golang使用关键字var声明变量.
如前所说,声明变量也就是声明一个内存的存储空间
语法是:
var 变量名 变量类型
- 给变量赋值
-
使用变量
四, 变量使用的细节
- 变量声明后可以不赋值直接使用,这时候使用变量的默认值.
- int和float的默认值是0
- bool默认是false
- string默认是空字符串""
- 变量可以声明和赋值在一条语句里,语法是:
var var_name type = value
如:
var name string = "奥巴马"
声明和赋值在一条语句里的时候,申明的时候可以不写类型,由=后边的值进行类型推导.如:
var age = 15
由于后边是15, 所以就自行推导为int类型
如果是在函数体内,还可以省略var关键字,使用:=,如:
age := 15
这种写法左侧的变量不能是已经声明过的,也不能再写类型. -
可以一次性申明多个全局变量(函数体外定义的变量称之为全局变量)
- 变量在同一个作用域内不能重名,不能重复声明,声明后赋值必须严格按照声明的类型赋值.
- 变量的三要素: 变量名, 数据类型, 值.