Open liujiusheng opened 2 years ago
GO语言中会自动进行类型和变量检测,变量若声明了不使用会编译不通过,且一个函数可以返回多个变量,可以使用下划线声明匿名变量,匿名变量代表变量可忽略,有几个返回值需要忽略就需要有几个下划线。
var 表示全局变量
:=不能使用在函数外,表示局部变量
T(表达式) 其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等
如:
string()
float64()
int()
创建匿名结构体
var user struct{Name string; Age int}
创建指针类型结构体
var p2 = new(person)
取结构体的地址实例化
p3 := &person{}
结构体初始化
var p4 person
使用键值对初始化
p5 := person{ name: "pprof.cn", city: "北京", age: 18, }
使用值的列表初始化
1.必须初始化结构体的所有字段。
2.初始值的填充顺序必须与字段在结构体中的声明顺序一致。
3.该方式不能和键值初始化方式混用。
p8 := &person{ "pprof.cn", "北京", 18, }
切片本身也是一种结构体,所以可以用结构体的大括号初始化,以下是最常用的初始化方法。
由于切片的底层是数组,所以切片有容量和长度的概念,容量始终大于等于长度,当长度大于容量时会自动重新分配切片的内存地址。cap为容量
通过make初始化切片的语法:
slice := make([]type, len, cap)
// 初始化 s2 := []int{} // 初始化赋值 var s4 []int = make([]int, 0, 0) fmt.Println(s4) s5 := []int{1, 2, 3} fmt.Println(s5)
用make初始化语法:
make(map[KeyType]ValueType, [cap])
也可直接声明的时候初始化
userInfo := map[string]string{ "username": "pprof.cn", "password": "123456", }
元素为map类型的切片
var mapSlice = make([]map[string]string, 3)
值为切片类型的map
var sliceMap = make(map[string][]string, 3)
变量
GO语言中会自动进行类型和变量检测,变量若声明了不使用会编译不通过,且一个函数可以返回多个变量,可以使用下划线声明匿名变量,匿名变量代表变量可忽略,有几个返回值需要忽略就需要有几个下划线。
var 表示全局变量
:=不能使用在函数外,表示局部变量
类型转换
T(表达式) 其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等
如:
string()
float64()
int()
结构体的初始化
创建匿名结构体
var user struct{Name string; Age int}
创建指针类型结构体
var p2 = new(person)
取结构体的地址实例化
p3 := &person{}
结构体初始化
var p4 person
使用键值对初始化
p5 := person{ name: "pprof.cn", city: "北京", age: 18, }
使用值的列表初始化
1.必须初始化结构体的所有字段。
2.初始值的填充顺序必须与字段在结构体中的声明顺序一致。
3.该方式不能和键值初始化方式混用。
p8 := &person{ "pprof.cn", "北京", 18, }
切片的初始化
切片本身也是一种结构体,所以可以用结构体的大括号初始化,以下是最常用的初始化方法。
由于切片的底层是数组,所以切片有容量和长度的概念,容量始终大于等于长度,当长度大于容量时会自动重新分配切片的内存地址。cap为容量
通过make初始化切片的语法:
slice := make([]type, len, cap)
MAP的初始化
用make初始化语法:
make(map[KeyType]ValueType, [cap])
也可直接声明的时候初始化
元素为map类型的切片
var mapSlice = make([]map[string]string, 3)
值为切片类型的map
var sliceMap = make(map[string][]string, 3)