当前位置: 首页 > news >正文

Golang make和new的区别

make 和 new

new函数

作用

  1. 分配内存
  2. 设置零值
  3. 返回指针
    eg:
type Student struct{name stringage int
}func main(){//new  一个内建类型num := new(int)fmt.Println(*num) //打印:0//new一个自定义类型s := new(Student)s.name = "yx"fmt.Println(s.name) //yx
}

注:
目前来看new函数不常用,因为大家更喜欢用短语句声明的方式

a := new(int)
*a = 1
// 等价于
a := 1

make函数

作用

  1. 内建函数 make 用来为 slice,map 或 chan 类型(注意:也只能用在这三种类型上)分配内存和初始化一个对象
  2. make 返回类型的本身而不是指针,而返回值也依赖于具体传入的类型,因为这三种类型就是引用类型,所以就没有必要返回他们的指针了
  3. 注意,因为这三种类型是引用类型,所以必须得初始化(size和cap),但不是置为零值,这个和new是不一样的。
    eg:
//切片
a := make([]int, 2, 10)// 字典
b := make(map[string]int)// 通道
c := make(chan int, 10)
http://www.lryc.cn/news/108168.html

相关文章:

  • (前后端交互式)Ajax上传图片 + 更换背景图片
  • 自媒体常见玩法
  • 【react】react生命周期钩子函数:
  • CRM系统哪些功能可以个性化定制?
  • 51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验二 LED闪烁
  • PaperEdge 文档图像矫正
  • 入门NLTK:Python自然语言处理库初级教程
  • Android 死机问题学习笔记
  • 企业内网终端安全无客户端准入控制技术实践
  • Android 开发代码规范
  • c语言(函数)
  • OPENCV C++(二)直方图+分离颜色通道+画圆画线画矩形
  • SpringBoot(2.7.x)中使用PageHelper
  • 【HarmonyOS】API9网络buffer图片加载
  • 【前端实习生备战秋招】—HTML 和 CSS面试题总结(二)
  • 操作系统知识点总结
  • (C++) 多线程之生产者消费者问题
  • 【C语言学习】逃逸字符(转义字符)
  • 开发手册|Java后端开发规范重点条目整理
  • c++11 标准模板(STL)(std::basic_ofstream)(二)
  • k8s概念-pv和pvc
  • python算法指南程序员经典,python算法教程pdf百度云
  • 微服务使用步骤
  • Ubuntu 23.04 作为系统盘的体验和使用感受
  • 百分点科技跻身中国智慧应急人工智能解决方案市场前三
  • vscode如何退出/切换 github 账号
  • maven发布到中央仓库
  • C#IEnumberable<>
  • Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)
  • Linux crontab命令:循环执行定时任务(详解)