zoukankan      html  css  js  c++  java
  • Go学习笔记-切片的声明中new()和make()的区别是什么

      都在堆上分配内存,但是它们的行为不同,适用于不同的类型

      不同:

    • new(T) 为每个新的类型T分配一片内存,初始化为 0 并且返回类型为*T的内存地址:这种方法 返回一个指向类型为 T,值为 0 的地址的指针,它适用于值类型如数组和结构体;它相当于 &T{}
    • make(T) 返回一个类型为 T 的初始值,它只适用于3种内建的引用类型:切片、map 和 channel。

      总结:换言之,new 函数分配内存,make 函数初始化

      

  • 相关阅读:
    个人博客
    个人博客
    5.4
    4.30
    4.29
    4.28
    4.27
    4.26
    4.25
    4.24
  • 原文地址:https://www.cnblogs.com/ymkfnuiwgij/p/8822361.html
Copyright © 2011-2022 走看看