美文网首页
go编程基础-数组

go编程基础-数组

作者: 郭某人1 | 来源:发表于2019-01-10 14:42 被阅读4次

    一、定义数组

    定义的格式:var<var Name> [n] <type>, n>=0;
    列:var a [2] int 长度为2的int型数组;输出:[0 0]
    a := [2]int{1}等同于 a := [3]int{0:1,1:0}
    长度为2的int型数组;输出:[1 0]
    a := [3]int{2:1} 等同于 a := [3]int{0:0,1:0,2:1}
    长度为3的int型数组;输出:[0 0 1]
    不指定数组长度,列
    a := [...] int {2,1,9,6,5}go语言会创建长度为5的int型数组;
    a := [...] int {19:1} go语言会创建长度为20的int型数组;

    二、数组指针和指针数组

    数组指针

    a := [...] int {19:1}
    var p *[20] int = &a
    fmt.Println(p)

    指针数组

    x,y := 1,2
    a := [...] *int {&x:&y}
    fmt.Println(a)

    三、数据传递和比较

    go语言中数组为值类型,传递数组时是传递整个数组的拷贝,而不是传递地址给方法或函数;

    #######数组之间可以使用==和!=比较,(数组长度也是类型的一部分,因此具有不同长度的数组为不同类型,不能进行==和!=比较)

    a := [2] int {2,1}
    b := [2] int {2,5}
    fmt.Println(a==b) 输出false

    a := [2] int {2,1}
    b := [2] int {2,1}
    fmt.Println(a==b) 输出true

    a := [3] int {2,1,3}
    b := [2] int {2,1}

    a := [2] string{"2","1"}
    b := [2] int {2,1}
    fmt.Println(a==b) 类型不一致不能进行比较

    四、数组单个元素赋值

    a := [10] int{}
    a[1] =2
    fmt.Println(a)

    p:=new ([10]int)
    p[1]=2
    fmt.Println(p)

    五、多维数组

    a:=[2][3]{{1,2,3},{1,1,2}} 2个长度为3的数组元素
    输出[[1 2 3][1 1 2]]
    同一维数组
    a:=[2][3]{{1:3},{0:2}}
    输出[[0 3 1][2 0 0]]

    六、冒泡排序(由大到小)

    a := [...]int{1, 6, 5, 8, 10, 2}
    num := len(a)
    for i := 0; i < num; i++ {
        for j := i + 1; j < num; j++ {
            if a[i] < a[j] {
                temp := a[i]
                a[i] = a[j]
                a[j] = temp
            }
    
        }
    }
    fmt.Println(a)

    相关文章

      网友评论

          本文标题:go编程基础-数组

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