Golang 变量声明及初始化
基本术语:
声明与定义的区别
变量声明的本质就是告诉编译器变量类型和初始化的值。
在C/C++语言中,声明和定义都规定了变量的名字和类型,定义会申请内存空间,声明不会。同一个变量可以多处声明,但只能一处定义。函数声明与定义的区别是函数声明有一个函数体。
extern int x; // 声明x 非定义
int y; // 定义y
go 语言变量声明和定义都是一起,不分开,所以变量声明定义,统称为定义。
初始化
变量声明时需要赋值的场景称为初始化。
初始化与赋值的区别:
初始化需要重新声明一个变量,赋值是指在已声明的变量基础上操作。
短变量声明
形如,无var
关键字,用 :=
进行声明初始化的过程。短变量声明只能在函数内部使用。
value := 2
变量详解
Golang中的内置类型
基础类型
整型:
int8,uint8,byte
int16,uint16
int32,uint32
int64,uint64
int, uint
uintptr
var v1 int8 // 0
var v1 int8 = 3 // 3
浮点型:
float32,float64
字符串类型:
string
var str string //
var str string = "hello world"
str := "hello world"
复数类型:
complex64,complex128
布尔类型:
bool
var v1 bool // 声明
var v1 bool = false
v1 = true // 赋值
v2 := (1 == 2) // 短变量声明初始化
字符类型:
rune
错误类型:
error
复合类型
指针pointer
,数组array
,切片slice
,字典map
,通道chan
,结构体struct
,接口interface
。
数组:
var arr [32]byte
切片:
var myArray [5]int = [5]int{1, 2, 3, 4, 5}
var mySlice []int = myArray[:5]
var mySlice = make([]int, 5) // 初始元素个数为5,初始值为0
var mySlice = make([]int, 5, 10) // 初始元素个数为5,初始值为0,预留10个元素的存储空间
var mySlice = []int{1, 2, 3, 4, 5} // 初始化
字典:
var myMap[string]int
myMap = make(map[string]int)
myMap = make(map[string]int, 100) // 存储能力为100
myMap = map[string]int{"abc":1, "bcd", 2}