golang 基础 数组+切片
package main
import (
"fmt"
)
// 数组 切片学习
func main() {
// 数组的初始化方式
nums1 := [3]int{1,2,3} //指定长度,全部初始化
fmt.Println("nums1: ",nums1)
nums2 := [5]int{1,2,3} //指定长度,部分初始化
fmt.Println("nums2: ",nums2)
nums3 := [...]int{4,5,6} //不设置长度,根据初始化长度推断
fmt.Println("nums3: ",nums3)
nums4 := [5]int{}; // 只设置长度,元素为默认值0
nums4[1] = 2
fmt.Println("nums4: ",nums4)
// ------------ 切片 ---------------//
/*
切片是灵活的,可以动态扩容
当添加元素超过切片容量,就会重新划一个容量为原来两倍的数组,指针指向这个数组
*/
s1 := []int{0,1,2,3} //根据字面量创建,长度和容量相等
fmt.Println(len(s1),cap(s1))
fmt.Println(s1)
s2 := make([]int,5,10) //make函数,指定长度和容量
fmt.Println(len(s2),cap(s2))
fmt.Println(s2)
// 修改元素 和追加元素
s2[2] = 3
s2 = append(s2, 6)
fmt.Println(s2)
//测试 动态扩容
s3 := make([]int,0,2)
for i := 1 ; i< 10; i++{
s3 = append(s3, i)
fmt.Printf("the len is %d,the cap is %d\n",len(s3),cap(s3))
}
}
标签:切片,int,s2,fmt,golang,s3,数组,Println
From: https://www.cnblogs.com/LIang2003/p/18534528