大家好,我是明哥。自学Golang的那段时间,我写了详细的学习笔记,放在了我的个人微信上公众号《Go编程时光》。我也是Go语言的初学者,所以我写的应该更适合刚入门的人。如果你刚开始学习Go语言,不妨关注一下,一起学习成长。我的在线博客:http://golang.iswbm.com我的Github:github.com/iswbm/GolangCodingTime1。新函数在官方文档中,新函数的说明如下//新的内置函数分配内存。第一个参数是一个类型,//不是一个值,返回的值是指向新分配的该类型的零值的指针。funcnew(Type)*Type如您所见,new只能传递一个参数,参数是任意类型,可以是Go语言的内置类型,也可以是你自己自定义的类型。那么新函数到底做了什么:分配内存,设置零值并返回指针(重要)。例如,import"fmt"typeStudentstruct{namestringageint}funcmain(){//新建一个内置类型num:=new(int)fmt.Println(*num)//打印零值:0//新的自定义类型s:=new(Student)s.name="wangbm"}2.make函数在官方文档中是这样描述的//make内置函数分配并初始化一个对象//类型为slice、map或chan(仅)。和new一样,第一个参数//是一个类型,而不是一个值。与new不同,make的返回类型与//其参数的类型相同,而不是指向它的指针。funcmake(tType,size...IntegerType)Type翻译注释内容。内置函数make用于打slice、map或chan(注意:只能用在这三种type)分配内存并初始化一个对象make返回类型本身而不是指针,返回值也取决于传入的具体类型,因为这三种类型都是引用类型,所以不需要返回它们的指针注意,因为这三种类型都是引用类型,所以必须对其进行初始化(size和cap),但不置零,这与new不同。举几个例子//切片a:=make([]int,2,10)//字典b:=make(map[string]int)//通道c:=make(chanint,10)3.总结new:为所有类型分配内存,初始化为零,返回指针。make:只能为slice、map、chan分配和初始化内存,并返回类型。另外,new函数目前并不常用,大家更喜欢使用短语句声明。a:=new(int)a=1//等价于a:=1但是make不同,它的位置是不可替代的,在使用slice、map和channel的时候,还是需要用make来初始化,然后就可以了在他们身上工作。系列指南01.搭建开发环境(Goland&VSCode)02.学习变量创建的五种方法03.数据类型详解:整型和浮点型04.数据类型详解:byte,rune,string05.详解数据类型解释:Arrays和Slices06。数据类型详解:字典和布尔类型07。数据类型详解:Pointers08。面向对象程序设计:结构和继承09。一篇了解Go10中函数的文章。Go语言流程控制:if-else条件语句11.Go语言流程控制:switch-case选择语句12.Go语言流程控制:for循环语句13.Go语言流程控制:goto无条件跳转14.Go语言流程控制:defer延迟调用15.面向对象编程:接口与多态16.关键词:make和new的区别?17.一篇理解Go18中语句块和作用域的文章。学习Go协程:goroutine19。学习Go协程:channels/channels20详解。通道死锁的几个经典错误案例详解21。学习Go协程:WaitGroup22。学习Go协程:互斥锁和读写锁23。Go中的异常处理:panic和recover24。超详细解读GoModules的前世今生和入门使用25。Go语言包导入的八个必学知识Point26.如何将自己写的模块开源给别人使用?27.说说Go语言中的类型断言?28.这五点带你看懂Go语言中select的使用
