4 流程控制

  • Go没有do- while,因此for有更广泛的含义与用途
  • switch也有一些扩展,支持类型判断和初始化子语句

  • 三个特殊关键字
    • defer捕获异常和资源回收等工作;
    • select多分支选择(配合通道使用)
    • go 异步启动 goroutine并执行特定函数

4.1条件语句

  • 一对大括号中的代码称为一个代码块,
    • 如一个函数,
    • 一个if语句都是一个代码块,
    • 每个代码块内部可有自己的局部变量

  • 源代码文件(.go)就是一个代码块,
    • 一个代码包也是一个代码块,
    • 整个项目的代码都是一个代码块
  • 代码块是互相包含的关系,
    • 本章的流程控制语句中的if、for、 switch和 select等语句括起来的代码也是代码块,
    • 甚至更小的:
      • 每一个case分支都是一个代码块

  • 要解释代码块,是为了方便理解作用域,
    • Go中的预定义标识符作用域是整个项目
  • 源代码文件中定义的实体(常量、变量、类型)作用域就是当前代码块(包导入可扩大作用域)
  • 函数之中定义的实体(常量、变量、类型等)作用域就是函数所在的代码块。

4.1.1 if判断

4 流程控制

  • a值为1