Go学习--结构体

                                                                          结构体

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肯定是不对的。

你可能感兴趣的:(Go学习--结构体)