这就是Effective GO关于嵌入在 golang 中所说的话
当我们嵌入一个类型时,该类型的方法成为外部类型的方法,但是当它们被调用时,方法的接收者是内部类型,而不是外部类型
我有一个代码片段,其中Struct User定义如下
type User struct {
Name string
Password string
*sql.Tx
}
然后我打电话给u.Query("some query here")等等。我专门做了这个,这样我就可以避免这样的电话u.Transaction.Query("query"),这显然违反了迪米特法则。现在,在阅读了文档和有效的 go 之后,我也怀疑第一种方法的优点。我是否违反了得墨忒耳定律?如果是,我该如何避免?
慕容708150
相关分类