【1个月读懂filebeat源码】第7天
2021-03-21 16:13:33 By

第5章看完,问题:

  • 5.9 章节:rawPrint("fmt", slist) fmt 为什么没有打印出来,自己尝试后,明显就是写的人漏了,但自己还要去试后才知道,感觉智商被侮辱
  • 5.12 中创建解析错误的时候,返回的是结构体的引用。也应该可以使用 return new(ParseError{filename, line})()
// 声明一个解析错误
type ParseError struct {
    Filename string // 文件名
    Line     int    // 行号
}
// 实现error接口,返回错误描述
func (e *ParseError) Error() string {
    return fmt.Sprintf("%s:%d", e.Filename, e.Line)
}
// 创建一些解析错误
func newParseError(filename string, line int) error {
    return &ParseError{filename, line}
}
  • 6.2 中说了结构体实例化方法,new,&,var,其中 new 和 & 是返回结构体实例指针,但也可以像 var 实例化返回的结构体,直接用 . 访问成员,这个 Go 语言特性了
  • 6.4 子类构造方法 NewBlackCat 为什么不用 cat := NewCat("cat name") 来构造呢,这里没体现父子关系的构造呢
  • 6.8 内嵌结构体实现继承,终于明白为什么之前结构体实例化能直接访问成员中结构体的成员了,这设计。。。

第6章也看完



© 2016-2021 taluo.ren 版权所有 ICP证:蜀ICP备15023822号-2