golang学习笔记——数据和切片
一维数组赋值
package main
import (
"fmt"
)
func main() {
//全部赋值
var a [5]int = [5]int{1, 2, 3, 4, 5}
fmt.Println("a = ", a)
//部分赋值
b := [...]int{3, 4, 5}
fmt.Println("b = ", b)
//指定元素赋值
c := [5]int{1: 2, 3: 4}
fmt.Println("c = ", c)
}
二维数组赋值
package main
import (
"fmt"
)
func main() {
a := [2][3]int{
{3, 2, 1},
{1, 2, 3},
}
fmt.Println("a = ", a)
}
数组做形参
package main
import (
"fmt"
)
func modify(p *[5]int) {
(*p)[0] = 100
}
func main() {
a := [5]int{1, 2, 3, 4, 5}
modify(&a)
fmt.Println("a = ", a)
}
切片
- 声明
- 截取切片
- 切片的容量和长度
- append函数(在切片末尾添加数据)
- append扩容时如果最终切片的长度大于原先切片的容量,则新切片的最大容量会变为原切片容量的两倍。且如果这个值扔不能满足新切片的需求时以长度2递增
- copy(dst,src) 将src切片复制给dst切片复制的长度以dst的容量为准直到src切片所有元素
- 注意
- 切片是指针变量,数组是值变量
- 内存优化