zoukankan      html  css  js  c++  java
  • 8.27Go之容器之range循环迭代切片

    8.27Go之容器之range循环迭代切片

    作用

    配合引用类型的数据类型进行读取里面的内容

    形式

    • 循环key和value、index和value--->显示值和地址

    • 循环value


    循环key和value

    package main

    import "fmt"

    func main() {
    /*声明一个切片*/
    slicePractice := []int{10,20,30,40}

    /*迭代值,显示key和value*/
    for i, j := range slicePractice {
    fmt.Printf("第%d号索引的值是%d ", i, j)
    }
    }

    显示值和地址:

    package main

    import "fmt"

    func main() {
    /*声明一个切片*/
    slicePractice := []int{10,20,30,40}

    /*显示值和地址*/
    for address, index := range slicePractice {
    fmt.Printf("Value: %d Value-Addr: %X ElemAddr: %X ", index, &index, &slicePractice[address])
    }
    }

    代码说明:

    迭代返回的变量是一个在迭代过程中根据切片依次赋值的新变量,所以 value 的地址总是相同的,要想获取每个元素的地址,需要使用切片变量和索引值&slice[index]

    只循环key

    package main

    import "fmt"

    func main() {
    /*声明一个切片*/
    slicePractice := []int{10,20,30,40}

    for index,_ := range slicePractice {
    fmt.Printf("Index value is %d ", index)
    fmt.Printf("引用地址是%x ", &index)
    }
    }
    /*
    可以输出变量的引用--->指针
    不需要索引值,也可以使用下划线_来忽略这个值
    */

    range 总是会从切片头部开始迭代。想对迭代做更多的控制,则可以使用传统的 for 循环

    package main

    import "fmt"

    func main() {
       // 创建一个整型切片,并赋值
       slice := []int{10, 20, 30, 40}
       // 从第三个元素开始迭代每个元素
       for index := 2; index < len(slice); index++ {
           fmt.Printf("Index: %d Value: %d ", index, slice[index])
      }
    }

     

    It's a lonely road!!!
  • 相关阅读:
    Java(八)——面向对象(4)-抽象类与接口
    Java(七)——面向对象(3)-多态
    Java(六)——面向对象(2)-继承
    Java(五)——面向对象(1)-基础
    Java(四)——数组
    Java(三)——流程控制
    Java(二)——Java基础
    易忘小技巧--yum
    网络测速命令--speedtest
    大型网站架构技术读后感
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15195058.html
Copyright © 2011-2022 走看看