V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zhijiangliu  ›  全部回复第 1 页 / 共 1 页
回复总数  5
2022-03-23 10:52:30 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 go make 与 new 关键词的区别
1 make 用于创建内置复合类型(map, slice, channel),new 用于创建其他基础类型数据或用户自定义数据。
2 复合类型数据结构通常是一个结构体+堆内存,因此 make 的额外作用就是初始化这些数据(和指针)。从这一点看,make 的作用是申请内存,并且初始化数据。而 new 只负责申请内存,不初始化。
3 为什么 new 不会初始化,因为没有类似构造函数的概率。
4 虽然 make 是内置函数,但它并不是一个函数。golang 编译器在编译时,会根据 make 的参数类型选择相对应的运行时函数。例如 make(map[int]int), 那么就会将 make 替换成 new_map 之类的函数。

总结一下,make 用于创建内置复合类型数据,new 用于创建其他数据。
2021-12-20 17:48:02 +08:00
回复了 huangmingyou 创建的主题 Linux bpf 能不能抓一个 skb 在内核被那些网络函数处理了
试试 ftrace
2021-06-11 09:46:16 +08:00
回复了 googlehub 创建的主题 随想 今天是我的生日🎂🎂🎂🍰🍰🍰
生日快乐
2019-10-11 10:25:16 +08:00
回复了 WangAJiu 创建的主题 问与答 关于副业 有没有好的介绍
@g1mino 对于英语有啥要求不
2016-11-30 08:39:03 +08:00
回复了 yunjonathan 创建的主题 酷工作 [深圳] 腾讯云招聘后台开发工程师
虽然工作 1 年多,但对这个工作非常感兴趣,可以不
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3573 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 05:04 · PVG 13:04 · LAX 21:04 · JFK 00:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.