命名规则
package包命名规则
原则上包命名应与目录名一致,若与目录不一致也可以,
当包名与与目录名不一致,import导包的时候依然是按原路径导包
比如可以与上层目录名一样,甚至用一个与目录不想关的名来为包命名
Slice切片
声明
方式一:
- var slice_name []int
- slice_name = make([]int, length, capacity) //capacity参数可选 length不可省略
注意:若没有第二部,也可以使用append直接赋值使用;
如果使用前没有使用make开辟空间,或切片是nil,可直接使用append赋值,会自动初始化并开辟空间
方式二:
slice_name := make([]int, length) //length 不可省略
方式三:
slice_name := []int{1, 2, 3}
赋值:
slice_name[index] = value //注意index下标不能超出当前长度length
追加,扩容
slice_name = append(slice_name, elem) //elem 要添加的元素
当前slice有未使用的空间(capacity - length) > 0,append不会给slice扩容,若 可用空间(capacity - length) = 0 会按两倍扩容
切片赋值和追加append需注意:切片追加是在当前长度之后追加,切片赋值不能超过当前长度,即使当前容量足够也不能够进行赋值
slice_name := make([]int , 3, 10)
slice1 = apped(slice1, 4) //输出0, 0, 0, 4
slice1[6] = 3 //会报panic