Sobes.tech
Back to questions
Junior — Middle
82

Возможно ли объявить методы с приватной областью видимости в языке Go?

Answer from AI

sobes.tech AI

В Go область видимости методов определяется по регистру первой буквы имени метода. Если имя метода начинается с заглавной буквы, он экспортируется (публичный), если с маленькой — метод приватный (доступен только внутри пакета). Таким образом, в Go нет ключевого слова private, но можно объявить метод с приватной областью видимости, просто начав его имя с маленькой буквы.

Пример:

package mypackage

type MyStruct struct {}

func (m MyStruct) publicMethod() {
    // приватный метод, доступен только внутри пакета mypackage
}

func (m MyStruct) PublicMethod() {
    // публичный метод, доступен из других пакетов
}

Вызов publicMethod будет возможен только внутри пакета mypackage.