Golang 中 switch 、for
★switch 细节讨论
1)case 后是一个表达式(即:常量值、变量值、一个有返回值的函数等都可以)
2)case 后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致
3)case 后面可以带多个表达式,使用逗号间隔。比如 case表达式1,表达式2...
4)case 后面的表达式如果是常量值,则要求不能重复
5)case后面不需要带break,程序匹配到一个case后就回执行对饮的代码块,然后退出switch,如果一个都匹配不到,则执行default
6)default 语句不是必须的。
7)switch后可以不带表达式,类似多个if-else 分支来使用
8)switch后也可以之间声明/定义一个变量,分号结束,不推荐
9)switch穿透 fallthrough,如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透。
★for 细节讨论
1)for循环的第一种写法
//for 循环第一种写法 for i :=1; i <= 10; i++ { fmt.Println("hello,ckfuture!"); }
2)for循环的第二种写法
//for 循环的第二种写法 j := 1 for j <= 10 { fmt.Println("hello,world!") j++ }
3)for循环的第三种写法(死循环),配合break使用
//for 循环的第三种写法(死循环),配合 break使用 k := 1 for { if k <= 10 { fmt.Println("ok!") } else { break } k++ }
★字符串的遍历
1)字符串的遍历方式1-传统方式
//字符串的遍历方式1-传统方式 var str string = "hello,world" for i := 0; i <= len(str); i++ { fmt.Printf("%c \n",str[i]) }
2)字符串的遍历方式2-for-range 的方式,可以方便遍历字符串和数组
//字符串的遍历方式2-for-range 的方式,可以方便遍历字符串和数组 str = "abc~ok" for index,val := range str { fmt.Printf("index=%d,val=%c \n",index,val) }