golang切片和数组的区别

golang切片和数组的区别,第1张

概述好久的没有写博客了,这段时间没事研究了下go这门语言。 我们先介绍下go中的数组切片区别和用法 说了这么多 我们先来看段代码吧 var arr1 [3]intvar arr2 [3]int = [3]int{1, 2, 3}fmt.Println(arr1)fmt.Println(arr2)  我申明了两个数组,初始化和没初始化的  然后运行这段代码输出为[0 0 0] [1

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

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

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

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

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

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

D:/program/Golang/hello golang/src/b/b.exe  [D:/program/Golang/hello golang/src/b][0 0 0][1 2 3]成功: 进程退出代码 0.

  

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

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

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

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

D:/program/Golang/hello golang/src/b/b.exe  [D:/program/Golang/hello golang/src/b][3 6][3 6 1 2 3 5 8]成功: 进程退出代码 0.

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

fmt.Println("数组***********************************")var arr1 [3]int = [3]int{1,3}var arr2 [3]int = arr1fmt.Println(arr1,arr2)arr2[0] = 10002fmt.Println(arr1,arr2)fmt.Println("切片***********************************")var slice1 []int = []int{1,3}var slice2 []int = slice1fmt.Println(slice1,slice2)slice2[0] = 10002fmt.Println(slice1,slice2)

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

D:/program/Golang/hello golang/src/b/b.exe  [D:/program/Golang/hello golang/src/b]数组***********************************[1 2 3] [1 2 3][1 2 3] [10002 2 3]切片***********************************[1 2 3] [1 2 3][10002 2 3] [10002 2 3]成功: 进程退出代码 0.

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

总结

以上是内存溢出为你收集整理的golang切片和数组的区别全部内容,希望文章能够帮你解决golang切片和数组的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存