go流程控制之for range(15)

2023年 7月 15日 55.4k 0

请输入图片描述

for range在go中非常常用,可以遍历字符串,数组,切片,映射,管道。

for range

一般而言,for range遍历,有一个索引和一个值,这与需要变量的对象有关。 简单的认为一个是索引index,和一个value即可

desc := "我是marksugar"
for index,value := range desc {
    fmt.Printf("%d %T %qn",index,value,value)
}

运行

[root@marksugar /opt/Golang]# go run for3.go 
0 int32 '我'
3 int32 '是'
6 int32 'm'
7 int32 'a'
8 int32 'r'
9 int32 'k'
10 int32 's'
11 int32 'u'
12 int32 'g'
13 int32 'a'
14 int32 'r'
  • 在for range中,如果不需要index或者value,可以使用_(下划线)不接收

    desc := "我是marksugar" for _,value := range desc {}注意:这里的空白标识符是go内置,我们只能对它进行赋值

比如下面这段代码:

var value int
_,value = 1,2
fmt.Println(value)

这里的输出是2。这里值得注意的是,因为空白标识符是内置的,不能使用:=(冒号)定义 。如果一定要使用:=赋值,在简短声明中,至少需要有一个是新定义的。那么需要如下定义:

package main
import "fmt"
func main(){
    var value int
    _,value = 1,4
    fmt.Println(value)
}

运行:

[root@linuxea-marksugar /opt/Golang/work2]# go run biaoshifu.go 4如果这里使用简短声明就会报错的

# command-line-arguments ./biaoshifu.go:5:10: no new variables on left side of := ./biaoshifu.go:7:1: syntax error: unexpected EOF, expecting }如果我们要使用简短声明就需要一个新的变量,如下

package main import "fmt" func main(){

   var value int
   _,value,newvalue := 1,4,5
   fmt.Println(value,newvalue)

}运行

[root@linuxea-marksugar /opt/Golang/work2]# go run biaoshifu.go 4 5

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论