河南做网站最好的公司,wordpress删除仪表盘,临沂做进销存网站,婚纱网站页面设计图片最近老是看到一些面试的视频#xff0c;对于视频内部面试所提到的八股文#xff0c;感觉是知道是什么#xff0c;但是要说的话#xff0c;却又不知道该怎么说#xff08;要不咋称之为八股文呢#xff09;#xff0c;所以就想到写一篇八股文总结的博客#xff0c;以便进… 最近老是看到一些面试的视频对于视频内部面试所提到的八股文感觉是知道是什么但是要说的话却又不知道该怎么说要不咋称之为八股文呢所以就想到写一篇八股文总结的博客以便进行学习和复习。 目前的计划安排是一天完成一道具体是哪个主题的不一定尽可能做到一天一道慢慢丰富起内容。 golang基础
1、golang中new和make的作用以及他们的区别
自己想的可以忽略直接看下面标准答案
newnew的作用就是传入一个类型创建一个对象并返回这个对象的指针。
makemake就是为slice、map、chan、channel初始化空间
区别没啥区别呀就不是一个东西。呃呃呃自己脑子里的就是不靠谱 标准回答 new函数的作用 在 Go 语言中new是一个内置函数。它的主要作用是分配内存并且将这块内存初始化为零值然后返回指向这块内存的指针。 make函数的作用 make也是 Go 语言中的一个内置函数但它和new有不同的用途。make主要用于创建切片slice、映射map和通道channel这三种复合类型并且返回一个初始化后的非零值对象。对于切片make会分配一个底层数组并返回一个切片对象这个切片对象包含了长度len和容量cap信息。例如make([]int, 2)会创建一个长度为2的int类型切片其底层数组已经被分配并且元素被初始化为int类型的零值也就是0。对于映射make会创建一个空的映射这个映射可以用于存储键 - 值对。例如make(map[string]int)会创建一个键为string类型值为int类型的空映射。对于通道make会创建一个通道可以用于在不同的goroutine之间进行通信。例如make(chan int)会创建一个int类型的通道。 new和make的区别 功能用途不同 new主要用于分配内存并返回指向该内存的指针它可以用于任何类型只要你想得到一个指向该类型零值的指针。而make主要用于初始化并返回切片、映射和通道这三种复合类型它返回的是一个已经初始化的非零值对象。返回值类型不同 new返回的是一个指针类型是*TT是你传入的类型。例如new(int)返回*int。而make返回的是切片、映射或通道本身例如make([]int, 5)返回[]int类型的切片make(map[string]int)返回map[string]int类型的映射make(chan int)返回chan int类型的通道。内存初始化不同 new只是将分配的内存清零也就是将值初始化为该类型的零值。而make对于切片会分配底层数组并初始化元素对于映射会创建一个空的可以存储键 - 值对的数据结构对于通道会创建一个可以用于通信的通道对象这些初始化过程比new的简单清零操作更复杂。 操作系统 数据结构 计算机网络 Linux Mysql Redis 分布式