• 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(通道):使用指定的缓冲区容量初始化通道的缓冲区。 如果为零或忽略大小,则通道不缓冲。
  • 相关阅读:
    (转)分析索引快速获取索引信息
    ORA-16014报错解决
    (转)关于索引的一点知识
    (转)CentOS搭建Nagios监控
    (转)Autotrace工具使用——小工具,大用场
    Using ROWNUM in Oracle
    oracle回收站
    DBA 思想天空笔记
    Oracle trunc函数
    MVC5中使用SignalR2.0实现实时聊天室
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14411335.html
Copyright © 2020-2023  润新知