美文网首页
《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