Здравейте,
Има ли use case за създаването на публични полета и методи, когато една структура не е експортната?
Давам пример:
package geometry
type rectangle struct {
Height, Width int
}
func (r *rectangle) Area() float64 {
return float64(r.Height * r.Width)
}
func (r *rectangle) Circumference() int {
return 2 * (r.Height + r.Width)
}
В случая - структурата rectangle не е експортната и ще се вижда само в пакета geometry.
Според мен, ако една структура не е експортната, то по начало "външния свят" (други пакети) няма как да я намерят и използват, което прави безсмислено всякакво експортване на нейно поле или метод.
Ако наистна няма use case-и, следсвтие ли е, че ако структура не е експортната, то по-добре и полетата и методите й да не са (най-малкото от съображение за консистентност в кода)? Има ли някакви конвенции по този въпрос?