golang切片和数组的区别
发布时间:2020-12-16 09:24:04 所属栏目:大数据 来源:网络整理
导读:好久的没有写博客了,这段时间没事研究了下go这门语言。 我们先介绍下go中的数组和切片的区别和用法 说了这么多 我们先来看段代码吧 var arr1 [3]intvar arr2 [3]int = [3]int{1,2,3}fmt.Println(arr1)fmt.Println(arr2) ?我申明了两个数组,初始化和没初始
好久的没有写博客了,这段时间没事研究了下go这门语言。 我们先介绍下go中的数组和切片的区别和用法 说了这么多 我们先来看段代码吧 var arr1 [3]int var 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 = arr1 fmt.Println(arr1,arr2) arr2[0] = 10002 fmt.Println(arr1,arr2) fmt.Println("切片***********************************") var slice1 []int = []int{1,3} var slice2 []int = slice1 fmt.Println(slice1,slice2) slice2[0] = 10002 fmt.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. 好了今天就写怎么多,喜欢的朋友帮忙点个赞 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |