Odmítání
Podporované způsob označování funguje jako zastaralé, je něco jako toto:
type MyStruct struct {
}
// MyFunc returns hello
// Deprecated: Use YourFunc
func (m MyStruct) MyFunc() string {
return "hello"
}
Moderní IDEs bude upozorňovat na jakékoliv použití této funkce a lintry může také zvýšit varování (nemám osobně zkontrolováno)
Přijmout rozhraní. Návrat structs.
Populární nejlepší praxe je "Přijmout rozhraní. Návrat structs." - která má tendenci podporovat SOLIDNÍ design v softwaru.
Nicméně, následující kód, který následuje toto nejlepší praxe - skrývá odmítání varování:
// MyInterface specifies a single function that we require from a dependency
type MyInterface interface {
MyFunc() string
}
func main() {
var v MyInterface
v = MyStruct{}
v.MyFunc()
}
Otázka
Existuje řešení tohoto problému?
Kdybych byl, například, knihovna udržovatel: jak mohu zajistit, že moje odmítání varování jsou vidět uživatelé knihovny, kteří jsou také následující nejlepší postupy a definování jejich vlastní závislost na rozhraní.