if 与传统语言的区别

判断条件不推荐➕()
无论执行语句多简单,必须➕{}
大括号必须在判断条件后,不得换行

  1. if flag== false { //这里必须这样写 golang 语法强制要求
  2. fmt.Println("zzzzzz")
  3. }

switch 与传统语言区别很大

1.匹配项后面也不需要再加 break
2.case/switch 后是一个表达式( 即:常量值、变量、一个有返回值的函数等都可以)
3.case 后的各个表达式的值的数据类型,必须和 switch 的表达式数据类型一致
4.case 后面可以带多个表达式,使用逗号间隔。比如 case 表达式 1, 表达式 2 …
5.case后面的表达式如果是常量值(字面量),则要求不能重复
6.case 后面不需要带 break , 程序匹配到一个 case 后就会执行对应的代码块,然后退出 switch,如 果一个都匹配不到,则执行 default
7.default 语句不是必须的.

8.switch 后也可以不带表达式,类似 if —else 分支来使用。
9.switch 后也可以直接声明/定义一个变量,分号结束,不推荐。
10.switch 穿透-fallthrough ,如果在 case 语句块后增加 fallthrough ,则会继续执行下一个 case,也 叫 switch 穿透
11.Type Switch:switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际指向的 变量类型

switch 和 if 的比较

什么情况下使用 switch ,什么情况下使用 if

1) 如果判断的具体数值不多,而且符合整数、浮点数、字符、字符串这几种类型。建议使用 swtich 语句,简洁高效。
2) 其他情况:对区间判断和结果为 bool 类型的判断,使用 if,if 的使用范围更广。

for 循环

1.循环条件是返回一个布尔值的表达式
2. for循环的第二种使用方式
for 循环判断条件 { //循环执行语句
}
将变量初始化和变量迭代写到其它位置
3.for循环的第三种使用方式

for {
//循环执行语句
}
上面的写法等价 for ; ; {} 是一个无限循环, 通常需要配合 break 语句使用
4) Golang 提供 for-range 的方式,可以方便遍历字符串和数组.
如果我们的字符串含有中文,那么传统的遍历字符串方式,就是错误,会出现乱码。原因是传统的
对字符串的遍历是按照字节来遍历,而一个汉字在 utf8 编码是对应 3 个字节。
如何解决 需要要将 str 转成 []rune 切片.
对应 for-range 遍历方式而言,是按照字符方式遍历。因此如果有字符串有中文,也是 ok

  1. <br />
  2. <br />