首页 文章资讯内容详情

golang切片和数组的区别

2026-06-01 4 花语

本文内容纲要:

好久的没有写博客了,这段时间没事研究了下go这门语言。

我们先介绍下go中的数组和切片的区别和用法

说了这么多我们先来看段代码吧

vararr1[3]int vararr2[3]int=[3]int{1,2,3} fmt.Println(arr1) fmt.Println(arr2)

我申明了两个数组,初始化和没初始化的

然后运行这段代码输出为[000][123]有没有发现和其他语言不一样的地方,细心的朋友应该已经发现了在go语言里默认为0值

D:/program/GoLang/hellogolang/src/b/b.exe[D:/program/GoLang/hellogolang/src/b] [000] [123] 成功:进程退出代码0.

然后我们再来看看切片,切片和数组很像。可以说是一种特殊数组

varslice[]int=[]int{3,6} fmt.Println(slice) slice=append(slice,1,2,3,5,8) fmt.Println(slice)

这里声明了一个sliceint类型的数组切片切片的长度是可变的,我们可以通过append方法向里面添加同类型的值

运行代码控制台打印的和我们预想的完全一样

D:/program/GoLang/hellogolang/src/b/b.exe[D:/program/GoLang/hellogolang/src/b] [36] [3612358] 成功:进程退出代码0.

上面我们讲述了切片和数组的用法,现在来看看他们的区别

fmt.Println("数组***********************************") vararr1[3]int=[3]int{1,2,3} vararr2[3]int=arr1 fmt.Println(arr1,arr2) arr2[0]=10002 fmt.Println(arr1,arr2) fmt.Println("切片***********************************") varslice1[]int=[]int{1,2,3} varslice2[]int=slice1 fmt.Println(slice1,slice2) slice2[0]=10002 fmt.Println(slice1,slice2)

输出结果如下可以看出数组是值拷贝而切片是引用

D:/program/GoLang/hellogolang/src/b/b.exe[D:/program/GoLang/hellogolang/src/b] 数组*********************************** [123][123] [123][1000223] 切片*********************************** [123][123] [1000223][1000223] 成功:进程退出代码0.

好了今天就写怎么多,喜欢的朋友帮忙点个赞

本文内容总结:

原文链接:https://www.cnblogs.com/blog-196/p/11141356.html