go语言中数组与切片的区别
来源:互联网 发布:上海特效牙膏知乎 编辑:程序博客网 时间:2024/06/05 19:11
一句话总结:切片是动态数组,注意两者初始化和函数参数的区别
1、初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变
//var a [...]int = [...]int{1, 2, 3} //error
a := [...]int{1, 2, 3}
var a2 [3]int = [3]int{4, 5, 6}
切片不需要指定大小
var s []int = []int{1, 2, 3, 4}
2、函数传递:
数组需要明确指定大小,切片不需要。数组是值传递,切片是地址传递
package main
import "fmt"
func changeArray(a [3]int) {
a[0] = 100
}
func changeSlice(s []int) {
s[0] = 100
}
func main() {
//var a [...]int = [...]int{1, 2, 3} //error
a := [...]int{1, 2, 3}
changeArray(a)
fmt.Println(a[0]) //值传递
var a2 [3]int = [3]int{4, 5, 6}
a2[2] = 77
var s []int = []int{1, 2, 3, 4}
fmt.Println(len(s), cap((s)))
s = append(s, 6, 7, 8)
fmt.Println(len(s), cap(s))
changeSlice(s)
fmt.Println(s[0]) //地址传递
}
1
4 4
7 8
100
成功: 进程退出代码 0.
阅读全文
0 0
- go语言中数组与切片的区别
- go语言中数组与切片的区别
- Go语言的数组,切片,set,map
- Go数组与切片
- go的学习记录(二)--- 数组与数组切片
- GO 语言 切片和底层数组的关系
- go语言之数组和切片的一些用法比较
- go语言学习----字符串、数组和切片的应用
- go语言学习-数组切片的创建和使用方法
- Go语言切片的本质
- Go语言基础入门--数组,切片,map
- Go语言4-数组、切片及map
- Go语言中数组和slice的区别
- 5.go slice, 切片与数组, map
- Golang中 的数组与切片
- Go学习笔记-Go语言数组array和切片slice
- Go语言中Slice(切片)初探
- Go语言切片的用法和本质
- 计算机视觉、机器学习相关领域论文和源代码大集合
- 【C++】对称矩阵
- 十六个有用的Linux命令行技巧
- FZU
- 模拟实现C库函数:strchr、strcmp、strstr、memcpy和memmove
- go语言中数组与切片的区别
- ORA-19698: D:ORACLEORADATALBMISREDO01.LOG 来自不同数据库: id=3075821044, db_ name=LBMIS
- 选择排序
- Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法
- ffmpeg系列:基于QT的播放器界面绘制
- 047day(复制构造函数和递归例题(波兰表达式)的学习)
- 考研倒计时30天的感想
- go语言中数组与切片的区别
- 如何使背景图片自适应屏幕