美文网首页
《A Tour of Go》学习笔记(一)

《A Tour of Go》学习笔记(一)

作者: ytxing | 来源:发表于2017-06-28 21:51 被阅读14次

文章《A Tour of Go》是官方文档,地址是https://tour.golang.org/welcome/1
该文档在官方《Go Documentation》系列文档中的位置如图所示。

Go Documentation

以下是我的学习笔记。

Packages, variables, and functions

  • 按约定,包名是导入路径的最后一个元素
  • 可分组导入,也可以单独导入
  • 大写开头的名称,属于导出名称,外部可见;小写名称外部不可见;👍
  • 声明时,类型在变量名后
  • 多返回值
  • 返回值命名,空返回语句👍
  • var声明变量,可在包级别和函数级别使用
  • var声明变量时初始化
  • :=缩写在函数内可用,包内不可用
  • 基本类型
  • 零值,变量声明但不初始化,会默认赋值对应类型零值
    • 数值类型赋值0
    • 布尔类型赋值false
    • string类型赋值""
  • 不同类型赋值,必须显式类型转换
  • 类型推断(%T可以输出变量类型)
  • 常量不可用:=一块声明
  • 数值常量是高精度的;未指定类型常量按需分配类型

Flow control statements: for, if, else, switch and defer

  1. Go只有一种循环控制:For
    • 无小括号;大括号必需;
  2. For的初始化表达式(init)和后执行表达式(post)都是可省略的
  3. 以上场景;也可省略,省略后成为while循环
  4. 三个表达式均省略,则成为一个死循环
  5. if格式同for:无小括号;大括号必需;
  6. if表达式前可以执行简短的语句,其间声明的变量仅在if内有效
  7. if里声明的变量在其后所有对应的else里也有效
  8. 练习使用循环实现sqrt函数
  9. switch每个分支默认都是break的,除非显式使用fallthrough👍
  10. switch的分支测试语句,从上往下执行,遇到匹配则后续不再执行
  11. switch的条件语句如果省略,相当于switch true,可用来代替多路的if-then-else,更干净更清爽
  12. defer语句的参数表达式一开始就执行,但是函数调用会在主函数返回后才执行
  13. 多个defer语句会被压栈,主函数返回后按先进后出逐个执行(扩展阅读可参考Go Blog文章Defer, Panic, and Recover(链接地址https://blog.golang.org/defer-panic-and-recover)。)

未完待续。

相关文章

网友评论

      本文标题:《A Tour of Go》学习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/sppdcxtx.html