go语法基础与其他语言对比学习(6) | 青训营

107 阅读1分钟

分支结构

  • if else else if的使用跟其他语言基本一致,就是判断条件不需要加括号
  • switch:
    • switch后是一个表达式(即:常量值、变量、一个有返回值的函数等都可以)
    • case后面的值如果是常量值(字面量),则要求不能重复
    • case后的各个值的数据类型,必须和 switch 的表达式数据类型一致
    • case后面可以带多个值,使用逗号间隔。比如 case 值1,值2...
    • case后面不需要带break(与其他语言不同之处)
    • default语句不是必须的,位置也是随意的。
    • switch后也可以不带表达式,当做if分支来使用
    • switch后也可以直接声明/定义一个变量,分号结束,不推荐
    • switch穿透,利用fallthrough关键字,如果在case语句块后增加fallthrough ,则会继续执行下一个case,也叫switch穿透。(跟Java和c/c++加强switch一致)

循环结构

  • 相比其他语言,go中只有for循环一种,将for和while统一在一块。
  • 循环条件照样不需要括号,然后for的初始表达式 不能用var定义变量的形式,要用:=
  • for range则如同其他语言的加强for循环一般,但可以设置两个参数来分别接收索引和具体值
import "fmt"
func main(){
    //定义一个字符串:
    var str string = "hello golang你好"
​
    for i, value := range str {
        fmt.Printf("索引为:%d,具体的值为:%c \n", i, value)
    }
    //对str进行遍历,遍历的每个结果的索引值被i接收,每个结果的具体数值被value接收
    //遍历对字符进行遍历的
}