Видимое имя в Go
Имя с большой буквы видно из другого пакета. Видимое имя начинается с большой буквы. Так автор показывает, что можно вызывать снаружи, а что оставить только для своих файлов.
Правило касается функций, типов, полей структуры и методов. Маленькая буква скрывает имя внутри пакета, большая открывает его для кода, который подключил этот пакет.
Откроем функцию в greet/greet.go:
package greet
func Hello() string {
return "hello"
}
Из main обращаются к Hello через
имя пакета:
package main
import (
"fmt"
"example.com/app/greet"
)
func main() {
fmt.Println(greet.Hello())
}
Если бы функцию назвали hello с маленькой
буквы, из main ее уже не вызвать. Для
типа то же: User виден снаружи,
user нет.
Дан пакет:
package greet
func Bye() string {
return "bye"
}
Подключите его в main и выведите
результат Bye.
Объявите в greet тип Tag с полем
Label типа string и метод
Text с большой буквы. Создайте значение
в main и выведите текст метода.
Скажите, можно ли из main прочитать
поле code структуры Item, если
поле объявлено с маленькой буквы в другом
пакете.