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