数组

作者: isuntong | 来源:发表于2020-03-08 22:20 被阅读0次
    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()
        }
    

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/awbjdhtx.html