Go 语言教程
目录
警告
本文最后更新于 2021-10-11,文中内容可能已过时。
一般结构
|  |  | 
规范
- 虽然不需要分号作为语句的结束,但实际上这一过程是由编译器自动完成
- 不存在隐式类型转换,所有类型转换必须显式说明,如a := int(b)
- 标识符的命名规则遵循骆驼命名法
- \作为多行连接符
注释
|  |  | 
- 可通过godoc来导出注释,显示文档说明。
- 每一个包应该有相关注释。
- 在package语句之前的块注释将被默认认为是这个包的文档说明,称为包注释。
- 一个包可以有多个文件,只需要在其中一个文件中添加包注释。
- 所有全局的类型、常量、变量、函数和被导出的对象都应有注释。若出现在函数前面,称为文档注释,例如函数Abc(),则注释为// Abc ...。
可见性
- public:标识符以大写字母开头,如- Name。
- private:标识符以小写字母开头,如- id。
包
|  |  | 
规范:
- 导入的包未使用报错。
函数
|  |  | 
规范:
main()函数:
- main()函数是程序第一个执行的函数(如果有- init()函数则会先执行- init())
- main包必须包含- main()函数
- main()函数既没有参数,也没有返回类型
类型
- 基本类型- int、- float、- bool、- string
 
- 复杂类型- struct、- array、- slice、- map、- channel、- interface
- 空值:nil
 
- 类型别名- type si map[string]int类似- #define si map<string, int>或- typedef map<string, int> si;
 
|  |  | 
常量
|  |  | 
- 类型包括:bool、int、float、complex、string
- 类型可省略
- 任何精度,不会溢出
|  |  | 
|  |  | 
- 每遇到一次const关键字,iota就重置为0
变量
|  |  | 
- 变量声明后,自动赋零值- int为- 0,- float为- 0.0,- bool为- false,- string为- "",指针为- nil。
 
- 内层代码块中可使用与外部代码相同名称的变量,此时外部的同名变量将会暂时隐藏(内层不改变外部变量值)