数组
package main
import "fmt"
/*func main() {
var a [6] int//定义6位数的数组
a[0]=100//数组第一个值为100
fmt.Printf("a=%v\n",a)
}*/
func pt(a[]int) {//定义一个数字的数组
fmt.Printf("%v\n",a)
}
//切片
func main() {
var b[6]int =[6]int{1,2,3,4,5,6}
//包括第0个元素,第一个元素
pt(b[0:2])
//全部
pt(b[0:])
//不包括第二个元素到最后一个元素
pt(b[2:])
//前二个元素
pt(b[:2])
//全部
pt(b[:])
}
切片操作
package main import "fmt" /*func main(){ var a []int//定义空数组 var b [6]int =[6]int{1,2,3,4,5,6}//b数组长度为6 a=b[0:2]//将b切片,把第一个值和第二个值赋值给a fmt.Printf("%v\n",a)//[1,2] a[0]=100//a数组的第一个值赋值为100 fmt.Printf("%v\n",b)//[100 2 3 4 5 6] }*/ /*func main() { var a[]int a=make([]int,2,2)//定义a切片长度为2,容量为2 fmt.Printf("%v len:%d,cap:%d,addr:%p\n",a,len(a),cap(a),a) //[0 0] len:2,cap:2,addr:0xc04203c1d0 a=append(a,100)//往a切片里添加一个值 fmt.Printf("%v len:%d,cap:%d,addr:%p\n",a,len(a),cap(a),a) //[0 0 100] len:3,cap:4,addr:0xc042042480 a=append(a,200) fmt.Printf("%v len:%d,cap:%d,addr:%p\n",a,len(a),cap(a),a) //[0 0 100 200] len:4,cap:4,addr:0xc042042480 a=append(a,300,400) fmt.Printf("%v len:%d,cap:%d,addr:%p\n",a,len(a),cap(a),a) //[0 0 100 200 300 400] len:6,cap:8,addr:0xc042044100,地址发生了变化 }*/ /*func main() { var a[]int = make([]int,5,5) b:=a fmt.Printf("%v addr:%p\n",a,a) //[0 0 0 0 0] addr:0xc04203ff50 fmt.Printf("%v addr:%p\n",b,b) //[0 0 0 0 0] addr:0xc04203ff50 b=append(b,10) fmt.Printf("%v addr:%p\n",a,a) //[0 0 0 0 0] addr:0xc04203ff50 fmt.Printf("%v addr:%p\n",b,b) //[0 0 0 0 0 10] addr:0xc042058050,地址发生了变化 }*/ func main() { var a []int var b [6]int =[6]int{1,2,3,4,5,6} a=b[3:5]//将b数组中下标为3,4的值取出来赋值给a fmt.Printf("%v len:%d,cap:%d\n",a,len(a),cap(a)) //[4 5] len:2,cap:3,长度为2,容量为3是因为4之前的用不到了,4之后的仍然还在 c:=a[0:1] fmt.Printf("%v len:%d,cap:%d",c,len(c),cap(c)) //[4] len:1,cap:3 }