1. go语言面向对象特点
- go语言仅支持封装,不支持继承和多态
- go语言没有class,只有struct
2. 结构的定义
- 不论地址还是结构本身,一律使用"."来访问成员
- 使用自定义工厂函数创建结构
- 注意返回了局部变量的地址
3. 为结构定义方法
- 显示定义和命名方法接收
- 使用指针作为方法接收者,只有使用指针才可以改变结构内容
- nil指针也可以调用方法
4. 值接收者VS指针接收者
- 要改变内容必须使用指针接收者
- 结构过大也考虑使用指针接收者
- 一致性:如有指针接收者,最好都是指针接收者
- 值接收者是go语言特有
- 值/指针接收者均可接收值/指针
5. 封装
- 名字一般使用CamelCase
- 首字母大写:public
- 首字母小写:private
6. 包
- 每个目录一个包,一个目录只能有一个包,包名不一定要和目录名一样
- main包包含可执行入口
- 为结构定义的方法必须放在同一个包内,可以是不同文件
7. GOPATH环境变量
- GOPATH下目录结构