Sobes.tech
Junior — Middle

Czy można deklarować metody z prywatnym zakresem widoczności w języku Go?

sobes.tech AI

Odpowiedź od AI

W Go zakres widoczności metod jest określany przez wielkość litery na początku nazwy metody. Jeśli nazwa metody zaczyna się od wielkiej litery, jest eksportowana (publiczna), jeśli od małej — metoda jest prywatna (dostępna tylko w pakiecie). W ten sposób w Go nie ma słowa kluczowego private, ale można zadeklarować metodę z prywatnym zakresem widoczności, po prostu zaczynając jej nazwę od małej litery.

Przykład:

package mypackage

type MyStruct struct {}

func (m MyStruct) publicMethod() {
    // prywatna metoda, dostępna tylko w pakiecie mypackage
}

func (m MyStruct) PublicMethod() {
    // publiczna metoda, dostępna z innych pakietów
}

Wywołanie publicMethod będzie możliwe tylko w pakiecie mypackage.