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

文章《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)。)

未完待续。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容