区别
for…range
遍历 数组和切片
for index, value := range array {
...
}
for index, value := range slice {
...
}
for index, value := range iterable {
...
}
for index := range array {
...
}
for index := range slice {
...
}
for index := range iterable {
...
}
遍历 map
for k, v := range Amap {
...
}
for k := range Amap {
...
}
for _, v := range Amap {
...
}
make
创建一个切片:
make([]T, len, cap)
创建一个map切片:
make([]map[keyT]valT, cap)
创建一个map:
make(map[keyT]valT, cap)
值类型和引用类型
值类型:int系列、float系列、bool、string、数组、结构体、指针
引用类型:slice 切片、channel 管道、interface 接口、map 映射、函数等
-
值类型的特点是:变量直接存储值,内存通常在栈中分配
-
引用类型的特点是:变量存储的是一个地址,这个地址对应的空间里才是真正存储的值,内存通常在堆中分配
new 和 make 的区别
new
返回的是指针,make
返回的是类型本身new
可以给所有类型的指针开辟空间,make
只能用于slice、map、chan
的初始化