当前位置: 首页> 文旅> 旅游 > 洛阳网站seo_网站发布方式有哪些_广告安装接单app_南京最大网站建设公司

洛阳网站seo_网站发布方式有哪些_广告安装接单app_南京最大网站建设公司

时间:2025/7/10 2:30:01来源:https://blog.csdn.net/weixin_73901614/article/details/142826867 浏览次数:0次
洛阳网站seo_网站发布方式有哪些_广告安装接单app_南京最大网站建设公司

在 Go 语言中,newmake 都是用于内存分配的内置函数,但它们有不同的用途和行为。初学者在学习 Go 时,往往会对这两个函数感到困惑。本文将详细介绍 newmake 的区别,并帮助你理解它们的应用场景。

文章目录

    • 一、`new` 函数
      • 1.1 语法
      • 1.2 示例
      • 1.3 使用场景
    • 二、`make` 函数
      • 2.1 语法
      • 2.2 示例
        • 创建 slice
        • 创建 map
      • 2.3 使用场景
    • 三、`new` 和 `make` 的区别
    • 四、总结

在这里插入图片描述

一、new 函数

new 函数用于为类型分配内存,但不初始化内存。它返回的是指向分配类型的指针。使用 new 分配的内存区域会被置为零值(即初始化为默认值,如 int0boolfalse,指针为 nil 等)。

1.1 语法

p := new(T)

这里的 T 是一个类型,p 是指向类型 T 的指针。new 函数只分配内存,不做初始化工作。因此,new(T) 返回的指针指向类型 T 的零值。

1.2 示例

package mainimport "fmt"func main() {num := new(int)fmt.Println(*num)  // 输出: 0
}

在这段代码中,new(int)int 类型分配了内存,并返回一个指向该内存的指针。由于 new 函数不会初始化数据,所以 *num 的值是 0,这是 int 类型的零值。

1.3 使用场景

new 主要用于分配内存,并返回指向分配内存的指针,适用于那些不需要显式初始化的情况。通常在需要创建指向零值对象的指针时使用 new

二、make 函数

make 函数用于为引用类型(slice、map 和 channel)分配和初始化内存。make 不是返回指针,而是返回这些引用类型本身。它不仅分配内存,还会对类型进行初始化,以便可以直接使用。

2.1 语法

make(t Type, size ...IntegerType) Type

其中 Type 必须是 slice、map 或 channel,size 取决于类型。例如,slice 需要指定长度,map 可以指定容量,channel 也可以指定容量。

2.2 示例

创建 slice
package mainimport "fmt"func main() {slice := make([]int, 5)fmt.Println(slice)  // 输出: [0 0 0 0 0]
}

在这段代码中,make([]int, 5) 创建了一个长度为 5 的 int 类型的 slice,并且每个元素都被初始化为 0

创建 map
package mainimport "fmt"func main() {m := make(map[string]int)m["key"] = 1fmt.Println(m)  // 输出: map[key:1]
}

make(map[string]int) 创建了一个空的 map,之后我们可以向其中添加键值对。

2.3 使用场景

make 用于 slice、map 和 channel 这三种引用类型的内存分配和初始化。通过 make 创建的对象可以直接使用,而不需要进一步初始化。

三、newmake 的区别

  • 用途不同new 用于分配任何类型的内存,返回指针,内存内容为零值;make 用于分配并初始化 slice、map 和 channel 等引用类型,返回的不是指针,而是类型本身。

  • 返回值不同new 返回指向类型的指针;make 返回 slice、map 或 channel 的引用。

  • 适用类型不同new 可用于所有类型的内存分配,而 make 仅适用于 slice、map 和 channel。

特性newmake
用途分配内存并返回指针分配并初始化引用类型的内存
返回值指向分配内存的指针slice、map 或 channel 本身
使用场景任何类型(值类型、引用类型)仅适用于 slice、map、channel

四、总结

Go 语言中的 newmake 是两种用于内存分配的内置函数,但它们的使用场景和返回结果完全不同。new 用于分配任意类型的内存,返回类型的指针;而 make 则专门用于引用类型的初始化,返回类型本身。

通过本文的详细讲解,相信你已经掌握了 newmake 的区别和使用场景。在开发中,理解这些基础概念对编写高效、健壮的 Go 代码至关重要。

关键字:洛阳网站seo_网站发布方式有哪些_广告安装接单app_南京最大网站建设公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: