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!!!
  • 相关阅读:
    CSS学习(五)
    1. Git-2.12.0-64-bit .exe下载
    90.bower解决js的依赖管理
    89.[NodeJS] Express 模板传值对象app.locals、res.locals
    88.NODE.JS加密模块CRYPTO常用方法介绍
    87.node.js操作mongoDB数据库示例分享
    50.AngularJs directive详解及示例代码
    49.AngularJs 指令directive之controller,link,compile
    48.AngularJS ng-src 指令
    86.express里面的app.configure作用
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15195058.html
Copyright © 2011-2022 走看看