golang struct 可以不声明成员类型吗?

我在github上看大佬写的以太源码分析,里面有段struct的定义语法我有点看不懂。
是这样的:

type typeinfo struct { //存储了编码器和解码器函数
    decoder
    writer
}

按照我的认知,golang的结构体定义不应该是这样的吗:

type struct_variable_type struct {
   member definition;
   member definition;
   ...
   member definition;
}

为什么上面大佬写的结构体成员可以不用有definition?

阅读 3.4k
3 个回答

你说的这种叫组合,是将多个已定义的struct组合成一个新的struct。
你可以看看,源码中应该有已定义的decoder ,writer 两个struct。
在新的struct中可以不用定义名称,使用的时候,可以直接当成新struct的属性。

type typeinfo struct { 
    decoder
    writer
}
// 下面这两个struct,应该在当前包里
type decoder struct {
    member definition
    member definition
    .....
}

type writer struct {
    member definition
    member definition
    .....
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题