Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpPkUn 48 of 280 menu
◀ ▶

Скрытое имя в Go

Имя с маленькой буквы остается внутри своего пакета, снаружи его не вызвать. Компилятор отклоняет обращение из main к такой функции или полю.

Спрячем вспомогательную функцию в greet/greet.go:

package greet func hello() string { return "hello" } func Hello() string { return hello() }

Внутри пакета hello вызывают из Hello без ограничений. Снаружи доступна только Hello.

Попытка обратиться к hello из main не собирается:

package main import "example.com/app/greet" func main() { _ = greet.hello() }

Сообщение компилятора указывает, что у пакета greet нет экспортированного имени hello. Исправление: вызвать greet.Hello или переименовать функцию с большой буквы, если она нужна снаружи.

Дан следующий код:

package main import "example.com/app/greet" func main() { fmt.Println(greet.hello()) }

Скажите, соберется ли программа и почему.

В пакете note есть title и Title. Перечислите, какие имена можно использовать из main.

Допишите Hello в greet/greet.go, чтобы она звала hello, а из main печатался только результат Hello.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить