从数组到切片 Link to heading
数组通过切片操作可以生成切片,切片是引用数据类型,源数组改变,切片就会变。切片在内存中包含三个数据。开始地址、长度、容量;容量是切片开始位置到数组最后的长度
package main
import "fmt"
func main() {
var a = [5]int{1, 2, 3, 4, 5}
// 生成切片slice,slice全切
var slice = a[:]
fmt.Println(slice)
// 切片slice也可以进行再切片,由于是引用数据,其实就是对源数据a进行切片
var newSlice = slice[1:3]
fmt.Println(newSlice)
// 修改newSlice[1]其实就是修改a[2]
newSlice[1] = 233
// 下面数据都发生了变化
fmt.Println(a)
fmt.Println(slice)
fmt.Println(newSlice)
var b = [5]int{1, 2, 3, 4, 5}
var c = b[1:3]
// cap查看容量
fmt.Println(len(c), cap(c))
}
切片的声明及赋值 Link to heading
var s = []int{11, 12, 13, 14, 15}
s[4] = 566
fmt.Println(s)