首页 > 其他分享 >Golang中使用new和make

Golang中使用new和make

时间:2022-09-07 17:15:49浏览次数:72  
标签:切片 10 make Golang 类型 new 分配

一、何时使用make和new?

二、make和new的区别


1.new这个内置函数用来分配内存。 第一个参数是类型,而不是值,返回值是指向该类型的新分配的零值(默认值)的指针。例如:


此时指针的内容为nil,不能使用,除非再次指向新的引用,所以意义不大,初始化切片时需要使用make。

2.make这个内置函数负责分配和初始化slice,map或chan类型的变量。 像new一样,第一个参数是类型,而不是值。 与new不同,make的返回类型与其参数的类型相同,而不是指向它的指针。 例如:

  • slice(切片):大小指定长度。 切片的容量等于其长度。 可以提供第二个整数参数来指定不同的容量。 它必须不小于长度。 例如,make([] int,0,10)分配一个大小为10的基础数组,并返回一个长度为0且容量为10的切片,该切片由该基础数组支持(即切片的底层由数组维护)。
  • map(映射):为空映射分配足够的空间来容纳指定数量的元素。 该大小可以省略,在这种情况下,分配的起始大小较小。
  • channel(通道):使用指定的缓冲区容量初始化通道的缓冲区。 如果为零或忽略大小,则通道不缓冲。

标签:切片,10,make,Golang,类型,new,分配
From: https://www.cnblogs.com/fulaien/p/16666489.html

相关文章

  • remake(DP)---区间dp篇
    技巧总结习题dls动态规划中级课石子合并变形---ICPCBeijing2017J,PanguandStones2017-ICPC-Beijing-J石子合并模型,限制每次合并只能合并连续的\([L,R]\)堆......
  • 第 14 题:情人节福利题,如何实现一个 new
    new运算符都做了哪些操作呢?1、创建了一个新对象(是Object类型的数据)2、将this指向新对象3、将创建的对象的原型指向构造函数的原型4、返回一个对象(如果构造函数本身有返回值......
  • 延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调
    先行定义,延后执行。不得不佩服Golang设计者天才的设计,事实上,defer关键字就相当于Python中的try{...}except{...}finally{...}结构设计中的finally语法块,函数结束时强制......
  • remake(DP)---数位dp篇
    模板总结寄搜模板lldp[N][state];//状态根据题目性质改变,例子记录数位中非零数位的个数//从高位向低位递归lldfs(intpos,intcnt,boollead,bool......
  • make
    make背景gcc在编译一个包含多个源文件的工程时,gcc需要将每一个源文件都编译一遍,任何再链接起来形成一个可执行文件。实际上,用户很少对所有源文件都进行修改,这就会造成......
  • Golang基础-5
    Golang基础-5map又叫映射(map),go语言中内置的一种类型,同样也是键值对关联基本语法varmap变量名map[keyType]valueType注意key的数据类型不能是slice,map,function,一......
  • cmake cache变量_反复研究好几遍,我才发现关于 CMake 变量还可以这样理解!
    反复研究好几遍,我才发现关于CMake变量还可以这样理解!​ 摘要:本文记录一下CMake变量的定义、原理及其使用。CMake变量包含NormalVariables、CacheVariables......
  • Golang如何判断接口是否实现
    packagemaintypepeopleinterface{ getage()int}typestustruct{ Ageint Namestring}typestaffstruct{ Ageint Namestring}func(T*stu)......
  • cmake语法手册及教程
    一,cmake变量引用的方式:前面我们已经提到了,使用${}进行变量的引用。在IF等语句中,是直接使用变量名而不通过${}取值二,cmake自定义变量的方式:主要有隐式定义和显......
  • new Set()的基础用法(ES6)
    1、什么是Set()Set是es6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。Set本身是一个构造函数,用来生成Set数据结构2、......