我有一个结构,可以通过以下过程来初始化,并且该结构按预期工作。
这是特定的跑步者
type TestRunner struct {
path string
name string
}
func NewRunner(p string, n string) *TestRunner {
return &TestRunner{
path: p,
name: n,
}
}
现在我想在同一个包中创建另一个跑步者,所以我这样做例如
也是特定的亚军
type TestRunner2 struct {
path string
name string
}
func NewRunner(p string, n string) *TestRunner2 {
return &TestRunner2{
path: p,
name: n,
}
}
现在我收到该函数NewRunner
存在的错误
我有另一个文件(在同一包中),其中包含接口
这是通用实现(同一程序包中的不同文件)
type Runner interface {
Run(path string) error
ChangePath(newPath string)
}
因此,也许NewRunner应该在那里,建议将新对象放在哪里?
显然我可以在文件中创建NewRunner1
和NewRunner2
方法,但是我不确定是否推荐
首先,您应该根据跑步者的功能而不是数字来为其命名。FastRunner
和SlowRunner
或LocalRunner
VS RemoteRunner
。你明白了。然后,您应该为每个对象创建一个构造:
func NewFastRunner( ... ) *FastRunner {
return &FastRunner{ ... }
}
func NewSlowRunner( ... ) *SlowRunner {
return &SlowRunner{ ... }
}
这是标准做法,并且使代码非常可读,明确。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句