求剧情
Go语言学习笔记 · 第六节

《Go语言学习笔记》第六节

结构体字段全部类型支持时才能比较;可用指针直接访问字段,但不能多级指针。

结构体字段全部类型支持时才能比较;可用指针直接访问字段,但不能多级指针。空结构长度为零,其数组和切片不占内存却可正常操作,常用于通道元素做事件通知。匿名字段无名字只有类型,编译器以类型名为字段名,可直接访问其成员;同名时由外向内查找,同层重名须用显式字段名。Go的匿名嵌入不是继承,无法多态。字段标签是元数据,可用反射读取,常用于校验和ORM映射。结构体内存一次性分配,字段按定义顺序相邻排列,分配时按最长基础类型宽度对齐;空结构字段按长度1对齐以避免越界。方法带receiver参数,可为除接口和指针外的类型定义,不支持重载;receiver可为基础类型或指针,调用时编译器自动转换。方法集决定类型是否实现接口,只影响接口实现,匿名字段正是为方法集服务。Go倾向组合而非继承。方法可作表达式(receiver变为首参)或值(赋值时复制receiver并绑定)。接口是方法声明集合,非侵入式实现:类型方法集包含接口全部方法即实现,可嵌入其他接口;空接口可装任何值。接口内部用itab存储类型信息和方法地址,赋值给接口时会复制对象,故常存指针。

‹ 上一章目录下一章 ›

全部 17 章