Ответ
В Go нет ключевого слова private, но приватность достигается через соглашение об именовании. Если идентификатор (метод, поле, функция) начинается с строчной буквы, он доступен только внутри текущего пакета.
Пример:
type myStruct struct {
privateField int // недоступен вне пакета
}
func (s *myStruct) privateMethod() { // недоступен вне пакета
fmt.Println("Это приватный метод")
}
func (s *myStruct) PublicMethod() { // доступен везде
fmt.Println("Это публичный метод")
}
Важно:
- Приватные методы нельзя вызвать из других пакетов.
- Внутри пакета они работают как обычные методы.
- Это соглашение, а не строгая защита — через рефлексию можно обойти.