zoukankan      html  css  js  c++  java
  • Golang何时使用new和make

    一、何时使用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(通道):使用指定的缓冲区容量初始化通道的缓冲区。 如果为零或忽略大小,则通道不缓冲。
  • 相关阅读:
    c# 时间操作
    JAVA file文件操作
    HttpServletRequest 转换成MultipartHttpServletRequest
    【日常笔记】java spring 注解读取文件
    【日常笔记】mybatis 处理 in 语句的使用
    购物车小程序
    Python中的r+和a+
    markdown基本语法
    markdown箭头的处理
    markdown中如何插入公式
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14411335.html
Copyright © 2011-2022 走看看