美文网首页
2023-10-29阶段1

2023-10-29阶段1

作者: 护念 | 来源:发表于2023-10-28 09:01 被阅读0次

    今天周末,和往常不一样哦

    对go数组的感想

    它和其它语言的数组有很大差异,差异点:

    1. 它是值传递(非引用)
    2. 它的长度不能改变
    3. 它里面元素只能是同一种类型

    在go中相较而言,切片用的更多

    1. 数组的初始化方式

    // 1. 标准式
    var a [5]int 
    
    // 2. 赋值方式 ... 代表其中元素个数可以自动推断
    b := [...]int{1,2,3}
    
    // 3. 根据索引初始化
    c := [5]string{1: "您!", 3: "好啊"} // 1号索引是 您 3号索引是 "好啊"
    
    // 4. 初始化二维数组
    d := [3][2]int{} // 初始化3行2列数组
    e := [...][2]int{{1,2},{4,5}} // 行数也可以推断
    

    2. 数组的遍历和切片/map 都一样用的也是range

    arr7 := [...][2]int{{1, 2}, {4, 8}}
    
    // 二维数组遍历
    for index, value := range arr7 {
      fmt.Printf("index=%#v; value=%#v\n", index, value)
    }
    
    for row, val_arr := range arr7 {
        for column, val := range val_arr {
        fmt.Printf("(row=%d, column=%d)=%d\n", row, column, val)
      }
    }
    

    3. 数组的cap 和 len 都是一样

    a := [3]int{}
    fmt.Println(len(a) == cap(a))
    

    相关文章

      网友评论

          本文标题:2023-10-29阶段1

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