美文网首页
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