结构体
1、结构体的定义:
type name struct {
name1 type1
name2 type2
...
}
2、结构体简单用法:
type person struct {
name string
age int
}
func main() {
var s person
s.name = "lxc"
s.age = 25
fmt.Println(s) //{lxc 25}
}
3、make和new的区别:
make只能用来构建切片(slice)、map和channel。
make:The make built-in function allocates and initializes an object of type slice, map, or chan (only).
make:内置函数make只能给slice、map或chan分配内存并初始化一个对象。
new:The new built-in function allocates memory.。
new:内置函数new用来分配内存。
注意:从源码中的注释可以看出,make分配并同时初始化了。new只是简单分配了地址。
slice、map和chan只能用make,不能用new的原因:
ep:
var sl = new([]int);
fmt.Println(sl,len(*sl),cap(*sl)) //&[] 0 0
切片的长度和容量都为0,所以sl[0] = 100肯定是不对的。
网友评论