Post

变量

var

  • 用于变量声明
  • 声明变量,变量默认是该类型的0值
  • var a *int,给a赋值会panic,因为a的默认值是null,没有内存空间

new

  • 为变量开辟内存空间
  • 返回指针类型
  • 可用于所有类型

make

  • 为变量开辟内存空间,也能同时初始化
  • 返回的是引用类型本身
  • 只能用于slice,map,channel

传值or传指针

  • 传值:拷贝整个对象;不能更改原对象

  • 传指针:拷贝指针地址;可更改原对象;发生逃逸,增加gc压力

    1
    2
    
    1、小对象,不需要更改原对象,传值
    2、大对象,需要更改原对象,传指针
    
This post is licensed under CC BY 4.0 by the author.