Go语言里的make和new有什么区别?
一、适用类型
二、返回类型
make:make返回的是一个被初始化后的(非零值)的引用类型对象,而不是指针。new:new返回的是一个指向新分配的零值对象的指针。三、用途
make:make用于创建slice、map和channel类型的对象,并对其进行初始化。new:new用于创建各种类型的对象,返回的对象是该类型的指针,并且该对象的值为该类型的零值。四、内存分配
make:对于slice、map和channel类型,make会进行内存分配,并初始化对象的内部结构,返回一个可用的对象。new:new只是进行零值内存分配,不会初始化对象的内部结构,返回的对象是该类型的指针,并且值为零值。五、参数类型
make:make接收的参数是具体的类型和长度等信息,用于创建特定类型的对象。new:new接收的参数是一个类型,用于创建该类型的零值对象。六、用法
make:常用于创建slice、map和channel,并进行初始化,以便直接使用。new:常用于创建各种类型的对象,并获取指向新对象的指针,通常用于获取对象的地址。七、返回值
make:返回创建的对象,类型为所创建的引用类型。new:返回创建对象的指针,类型为指向所创建对象类型的指针。八、错误处理
make:在运行时对于slice、map和channel类型,如果长度参数为负值,或者其他参数出现不合法情况,会引发运行时错误。new:new不会进行运行时错误处理,只进行零值内存分配。延伸阅读
Go语言的特点
简洁易用:Go语言拥有清晰简洁的语法,易于学习和使用。它摒弃了一些冗余的语法元素,使得代码更加简明和易读。并发支持:Go语言内置了轻量级的并发机制,即Go协程(goroutine)和通道(channel)。开发者可以轻松地使用这些特性来编写高效的并发代码,实现并发编程和并行计算。高性能:Go语言的编译器和运行时环境针对性能做了优化,使得生成的机器码具有很高的执行效率。Go语言还支持垃圾回收(Garbage Collection),减轻了开发者的内存管理负担。跨平台:Go语言可以直接编译生成独立的二进制文件,无需依赖外部的运行时库。这使得Go语言程序可以方便地在不同的操作系统上进行部署和运行,如Windows、Linux、macOS等。内置工具:Go语言附带了一系列的工具,如格式化工具(gofmt)、文档生成工具(godoc)、测试工具(go test)等。这些工具能够提供代码的一致性、可读性和可维护性。强大的标准库:Go语言提供了丰富而强大的标准库,覆盖了网络、文件、数据库、加密等各个领域。开发者可以直接使用这些标准库来实现各种常见的功能,提高开发效率。社区活跃:Go语言拥有一个活跃的社区,提供了丰富的开源库和框架,以满足不同需求的开发。Go语言的社区还积极参与讨论和改进,推动了Go语言生态系统的发展。
猜你喜欢LIKE
相关推荐HOT
更多>>
WordPress与MySQL数据库之间是什么关系?
一、WordPress与MySQL数据库之间是什么关系说的简单点,wordpress或者类似的网站程序就类似一辆BUS,而数据库仅仅是一个记录系统。这两BUS长的...详情>>
2023-10-17 23:19:57
为什么一台电脑可以安装多个SQL Server实例?
一、为什么一台电脑可以安装多个SQL Server实例在SQL Server中,实例与编程的“类和对象”很相似。安装过程可以看作是类,安装过程中创建的实例...详情>>
2023-10-17 22:14:09
memcache缓存的是什么数据又是怎么写入的呢?
一、memcache缓存的是什么数据又是怎么写入的首先明确,memcache是作为高速缓存使用的。那么,到底怎样才能获得高速的响应呢?当然如果是简单处...详情>>
2023-10-17 21:14:39
MySQL InnoDB聚簇索引B+树的阶(m)是怎样决定的?
一、MySQL InnoDB聚簇索引B+树的阶(m)是怎样决定的1、页的大小(Page Size)B+树是以固定大小的页(Page)为单位进行存储和操作的,页是数据库...详情>>
2023-10-17 18:07:35热门推荐
什么是关联子查询,关联子查询语法有什么好处?
沸WordPress与MySQL数据库之间是什么关系?
热linux下连接oracle数据库有什么好用的工具?
热为什么一台电脑可以安装多个SQL Server实例?
新像爱奇艺、优酷等视频网站的数据库是怎么设计的?
memcache缓存的是什么数据又是怎么写入的呢?
怎样在数据库中实现一对多的关系怎样存储图片和视频?
access数据库怎么样通过宏命令实现打开数据库后自动启动窗体?
怎么向MySQL导入数据的同时在主键列自动生成uuid?
SQLite的优缺点?
SQL Sever2000的数据库怎么附加到2012的数据库上?
MySQL InnoDB聚簇索引B+树的阶(m)是怎样决定的?
postgre的bpchar字段类型相当于MySQL的什么类型?
Android适配你需要学习哪些?
技术干货






