值传递
数组
切片
切片操作
值传递? 应用传递?
在c++ 中:
java python 除了基本类型都是引用传递
go 值传递一种方式。都拷贝一份。结合指针传递实现类似引用传递:
数组是值类型。方法传递是拷贝。
arr [5]int 与 arr[]int 不同,后面的是切片
可以使用指针进行传递
go 语言不直接使用数组,使用切片
slice是数组的视图
改变(slice)视图中的值。原数组的值也改变
可以对slice1进行slice2。都是对同一个array的视图
slice 内部结构。ptr 开始位置,len 当前切片的长度, 原数据从切片的ptr后还有多少元素
Extending slice 。slice 可以扩展的。不能向后扩展,不可以向前扩展
Extending slice 不可以超越len,向后扩展不可以超越底层数组cap
append 数据,如果超过cap,系统会重新分配更大的底层数组,原来的数组go会进行垃圾回收
由于值传递,必须接appent的返回值。s3 := append(s2, 10)
append 时候如果cap 不够了每次都会扩充cap 的两倍容量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |