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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容