在 go 中声明空类型

对于给定的类型Data,我想定义一组过滤器,每个过滤器都Data以某种方式进行处理。一些过滤器仅需要处理数据,其他过滤器可能需要其他参数。


type Data struct {

    ...

}

我希望能够定义一个过滤器列表,并将它们顺序地应用于的实例Data。为了达到这个目的,我定义了一个Filter接口:


type Filter interface {

    Apply (d *Data) error

}

要定义过滤器,我要做的就是创建一个新类型并为其定义Apply方法。


现在,假设我有一个不需要任何其他信息的过滤器。将其定义为空是一种好习惯struct吗?


type MySimpleFilter struct {}


func (f *MySimpleFilter) Apply (d *Data) {

    ...

}


元芳怎么了
浏览 263回答 2
2回答

哔哔one

这是一个没有明确答案的问题,因为这是一个品味问题。我想说这是一个好习惯,因为它使MySimpleFilter与其他过滤器对称,这使理解代码更加容易。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go