数组

2020-03-08  本文已影响0人  isuntong
package main

import "fmt"

//20
func main() {
    /*
    数组:
        1. 概念
            存储一组相同数据类型的数据结构
        2. 语法
            var 数组名 [长度] 数据类型
            var 数组名 = [长度] 数据类型 {元素1,元素2...}
            数组名 := [...] 数据类型 {元素1,元素2...}
    */
    var arr1 [4] int
    arr1[0] = 1
    arr1[1] = 2
    arr1[2] = 3
    arr1[3] = 4
    fmt.Println(arr1[0])
    fmt.Println("数组的长度:",len(arr1)) //实际存储
    fmt.Println("数组的容量:",cap(arr1)) //最大存储
    // 因为数组定长,所以二者相同

    //其他创建方式,直接赋值
    var b = [4]int{1,2,3,4}
    fmt.Println(b)

    f := [...]int{1,2,3,4,5}
    fmt.Println(f)

    g := [...]int{1:3,6:5}
    fmt.Println(g)
}

数组的遍历

/*
    遍历
    */
    for i:=0;i<len(arr1);i++ {
        arr1[i] = i*2 + 1
    }
    fmt.Println(arr1)

    //range
    for index,value := range arr1 {
        fmt.Printf("下标是:%d,数值是:%d\n",index,value)
    }

    sum := 0
    for _,v := range arr1 {
        sum += v
    }
    fmt.Println(sum)

数组是值类型

/*
    数组是值类型
        [size]type
    */
    arr01 := [4]int{1,2,3,4}
    arr2 := [3]float64{2.15,3.18,6.19}
    arr3 := [4]int{5,6,7,8}
    arr4 := [2]string{"hello","world"}
    fmt.Printf("%T\n",arr01) //[4]int
    fmt.Printf("%T\n",arr2)  //[3]float64
    fmt.Printf("%T\n",arr3)  //[4]int
    fmt.Printf("%T\n",arr4)  //[2]string

    //2.值传递

数组的排序

冒泡排序

for i:=1;i<len(arr01);i++ {
        for j:=0;j<len(arr01)-i;j++ {
            if(arr01[j] > arr01[j+1]) {
                arr01[j],arr01[j+1] = arr01[j+1],arr01[j]
            }
        }
    }

    fmt.Println(arr01)

多维数组

/*
    二维数组
        a2 := [3][4]int{{},{},{}}

    */
    a2 := [3][4]int{{1,2,3,4},{5,6,7,8},{9,10,11,12}}
    fmt.Println(a2)
    fmt.Printf("二维数组的地址:%p\n",&a2)
    fmt.Printf("二维数组的长度:%d\n",len(a2))
    fmt.Printf("一维数组的长度:%d\n",len(a2[0]))
    fmt.Printf("二维数组的容量:%d\n",cap(a2))
    fmt.Println(a2[0][3])

    //遍历
    for i:=0;i<len(a2);i++ {
        for j:=0;j<len(a2[i]);j++ {
            fmt.Print(a2[i][j],"\t")
        }
        fmt.Println()
    }

    //for range
    for _,arr := range a2 {
        for _,val := range arr {
            fmt.Print(val,"\t")
        }
        fmt.Println()
    }
上一篇 下一篇

猜你喜欢

热点阅读