1. package main
    2. import "fmt"
    3. func main() {
    4. //[元素长度]元素类型{元素1,元素2}
    5. a := [3]int{0,1,2}
    6. fmt.Println(a)
    7. //不固定长度数组
    8. b := [...]int{2,3,12,31,23,12,3,12,3,12,312,3,214,21,412,4,434}
    9. fmt.Println(b)
    10. //另外一种定义数组的方式,将数组第五值改为23,其他值默认是0
    11. var d = new([10]int)
    12. d[5] = 23
    13. fmt.Println(d)
    14. zoom := [...]string{"狗","大象","猴子","长颈鹿"}
    15. //循环数组
    16. for i:=0;i<len(zoom);i++{
    17. fmt.Println(zoom[i]+".跑")
    18. }
    19. //range 循环数组
    20. for i,v:= range zoom{
    21. fmt.Println(i,v)
    22. }
    23. fmt.Println(len(zoom))
    24. fmt.Println(cap(zoom))
    25. //二维数组
    26. er := [3][4]int{
    27. {0,1,3,4},
    28. {5,6,7,8},
    29. {9,10,11,12},
    30. }
    31. fmt.Println(er)
    32. //切片
    33. aaa := [3]int{1,2,3}
    34. //取
    35. c1 := aaa[2:]
    36. fmt.Println(c1)
    37. //
    38. c2 := aaa[0:2]
    39. fmt.Println(c2)
    40. c3 := aaa[:2]
    41. fmt.Println(c3)
    42. //切片有append方法,数组没有
    43. c4 := aaa[:]
    44. c5 := append(c4, 4)
    45. fmt.Println(c5)
    46. //copy 将一个数组切片复制到另一个数组切片中,如果加入的两个数组切片不一样大,就会按照其中较小的那个数组切片的元素个数进行复制
    47. slice1:=[]int{1,2,3,4,5}
    48. slice2:=[]int{5,4,3}
    49. copy(slice1,slice2) // 只会复制slice2的3个元素到slice1的前3个位置
    50. fmt.Println("copy...",slice1)
    51. copy(slice2,slice1)// 只会复制slice1的前3个元素到slice2中
    52. fmt.Println("copy...",slice2)
    53. //创建切片
    54. //方法1 无默认值
    55. var aa []int
    56. //方法2 有默认值
    57. bb := make([]int,4)
    58. fmt.Println(aa,bb)
    59. }