美文网首页
Go语言的关键字 range,可以配合关键字 for 来迭代切片

Go语言的关键字 range,可以配合关键字 for 来迭代切片

作者: 沫明 | 来源:发表于2019-12-24 13:40 被阅读0次
    package main
    
    import "fmt"
    
    // range,它可以配合关键字 for 来迭代切片里的每一个元素
    func main()  {
        slice := []int{10,20,30,40}
        for index,value := range slice{
            fmt.Printf("index:%d Value:%d Value-Addr: %X ElemAddr: %X\n", index,value, &value, &slice[index])
        }
    }
    // index 和 value 分别用来接收 range 关键字返回的切片中每个元素的索引和值
    //range 返回的是每个元素的副本,而不是直接返回对该元素的引用
    
    //迭代返回的变量是一个在迭代过程中根据切片依次赋值的新变量,
    //所以 value 的地址总是相同的,要想获取每个元素的地址,
    //需要使用切片变量和索引值(例如上面代码中的 &slice[index])
    
    //index:0 Value:10 Value-Addr: C00009A010 ElemAddr: C00009C020
    //index:1 Value:20 Value-Addr: C00009A010 ElemAddr: C00009C028
    //index:2 Value:30 Value-Addr: C00009A010 ElemAddr: C00009C030
    //index:3 Value:40 Value-Addr: C00009A010 ElemAddr: C00009C038

    相关文章

      网友评论

          本文标题:Go语言的关键字 range,可以配合关键字 for 来迭代切片

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