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。
- 内层代码块中可使用与外部代码相同名称的变量,此时外部的同名变量将会暂时隐藏(内层不改变外部变量值)