封装
Go通过限制struct中成员是否能导出配合该strcut类型定义相关的方法实现封装
setter
setter方法是用来设置封装字段值的方法
setter方法需要指针接收器
setter方法通常被命名为setX, X为被设置字段的名称
getter
getter方法是用于获取封装字段的方法
getter方法通常被命名为X, X为被设置字段的名称 (一般习惯前面不加get)
1 | package abc |
嵌入 struct
当子struct嵌入到父strcut,子struct未导出的字段不会被提升
当子struct嵌入到父strcut,子struct导出的方法会被提升
1 | package main |
注意当struct嵌入了多个子struct时,导出方法可能会有重名的情况,这时直接调用导出方法会无法编译通过,需要加上类型
1 | //abc包中的Abc和def包中的Def都定义了setName()和Name() |