一、数组
1.定义
var a1 [ 4 ] bool
var a2 [ 3 ] int
2.初始化
var a1 [ 4 ] bool
var a2 [ 3 ] int
a1 = [ 4 ] bool { true , true , true , true }
a2 = [ 3 ] int { 12 , 23 , 34 }
a3 := [ 4 ] bool { true , true , true , true }
a4 := [ 3 ] int { 12 , 23 , 34 }
a5 := [ 3 ] int { 12 , 23 }
a6 := [ ... ] int { 1 , 2 , 2 , 3 , 3 , 4 }
a7 := [ 5 ] int { 0 : 12 , 3 : 23 }
3.遍历
citys := [ 5 ] string { "beijing" , "shanghai" , "taiyuan" , "datong" , "nanjing" }
for i := 0 ; i < len ( citys) ; i++ {
fmt. Println ( citys[ i] )
}
for i, v := range citys {
fmt. Println ( i, v)
}
二、多维数组
1.定义
var a1 [ 3 ] [ 2 ] int
a1 = [ 3 ] [ 2 ] int {
[ 2 ] int { 1 , 2 } ,
[ 2 ] int { 3 , 4 } ,
[ 2 ] int { 5 , 6 } ,
}
fmt. Println ( a1)
var a1 [ 3 ] [ 2 ] int = [ 3 ] [ 2 ] int {
[ 2 ] int { 1 , 2 } ,
[ 2 ] int { 3 , 4 } ,
[ 2 ] int { 5 , 6 } ,
}
2.遍历
var a1 [ 3 ] [ 2 ] int = [ 3 ] [ 2 ] int {
[ 2 ] int { 1 , 2 } ,
[ 2 ] int { 3 , 4 } ,
[ 2 ] int { 5 , 6 } ,
}
for _ , v := range a1 {
fmt. Println ( v)
}
三、切片
1.定义
var a1 [ ] int = [ ] int { 1 , 2 , 3 }
var a2 [ ] string = [ ] string { "hello" , "world" }
a2 := [ ] string { "hello" , "world" }
2.由数组得到切片
a := [ ... ] int { 1 , 2 , 3 , 4 , 5 , 6 , 7 }
s1 := a[ 2 : 4 ]
s2 := a[ : 4 ]
s3 := a[ 4 : ]
s4 := a[ : ]
3.切片的长度和容量
a := [ ... ] int { 1 , 2 , 3 , 4 , 5 , 6 , 7 }
s1 := a[ 2 : 4 ]
s2 := a[ : 4 ]
s3 := a[ 4 : ]
fmt. Println ( len ( a) , cap ( a) )
fmt. Println ( len ( s1) , cap ( s1) )
fmt. Println ( len ( s2) , cap ( s2) )
fmt. Println ( len ( s3) , cap ( s3) )
4.切片再切片
a := [ ... ] int { 1 , 2 , 3 , 4 , 5 , 6 , 7 }
s1 := a[ 2 : ]
s2 := s1[ 2 : 4 ]
fmt. Println ( a, s1, s2)
fmt. Println ( len ( s2) , cap ( s2) )
a := [ ... ] int { 1 , 2 , 3 , 4 , 5 , 6 , 7 }
s := a[ : ]
fmt. Println ( a)
s[ 2 ] = 100
fmt. Println ( a)
5.切片追加元素append
s1 := [ ] string { "北京" , "上海" , "深圳" }
s1 = append ( s1, "广州" , "杭州" )
s2 := [ ] string { "西安" , "成都" , "南京" }
s1 = append ( s1, s2... )
6.切片拷贝copy
s1 := [ ] string { "北京" , "上海" , "深圳" }
s2 := [ ] string { "广州" , "杭州" }
copy ( s1, s2)
fmt. Println ( s1)