Допустим, у меня есть структура, реализующая интерфейс, подобный приведенному ниже:
type IFace interface {
Method1()
Method2()
Method3()
}
type Face struct {
Prop1 string
Prop2 int
}
// IFace implementation here...
Теперь, если у меня есть метод, который принимает IFace
, лучше ли спроектировать его так, чтобы он принимал указатель на этот интерфейс значений?
- Принять указатель:
func DummyMethod(f *IFace) {
(*f).Method1()
}
По значению:
func DummyMethod(f IFace){
f.Method1()
}
Мое первое предположение состоит в том, что, поскольку это структуры, возможно, лучше передавать по значению?Или есть эмпирическое правило, учитывающее размер и природу структуры, когда начинать передавать указатель?
Кроме того, когда мы добавляем методы в структуру, лучше передать указатель на структуру или этозначение?