Новое для GoLang, поступающее из Delphi, С++:
В первый раз я попытался создать свой собственный пакет в Go, я выполнил все инструкции о том, как выложить рабочую область и т.д., но я продолжал получать ошибку компилятора:
./myPackage.go:52: undefined: myFunc
После нескольких минут я обнаружил, что модификатор открытого доступа в Go достигается просто объявлением функции в верхнем регистре. Отлично.
Но когда я начал экспериментировать с классами контейнеров - List
для стартеров, я обнаружил, что мне нужно было объявить возвращаемое ссылочное значение List следующим образом:
func GetFactors(value *int64) *list.List {...
*list
находится в нижнем регистре.
То же самое, когда я объявлял локальную ссылку на список - мне приходилось использовать:
l := list.New()
Снова нижний регистр для List
.
Итак, я в замешательстве. Каково правило? Вызов списка и ссылки, очевидно, являются общедоступными, или я не смог бы их вызвать/использовать - так почему они в нижнем регистре?