Какова область применения метода в Go? - PullRequest
0 голосов
/ 22 января 2019

Из спецификации («Объявления и область действия»):

Область действия идентификатора, обозначающего константу, тип, переменную или функцию (но не метод), объявленную на верхнем уровне (вне любогоfunction) является блоком пакета.

Я предполагаю, что это означает, что область действия идентификатора, обозначающего метод, а не блок пакета.

Тогда что это?Мне не удалось найти какую-либо информацию в спецификации.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Имена методов не имеют области видимости.Они всегда должны быть квалифицированы по значению или типу.

0 голосов
/ 22 января 2019

Спецификация языка программирования Go

Объявления методов

Метод - это функция с приемником.Объявление метода привязывает идентификатор, имя метода к методу и связывает метод с базовым типом получателя.

Получатель указывается с помощью раздела дополнительных параметров, предшествующего имени метода.В этом разделе параметров должен быть объявлен единственный невариантный параметр - получатель.Его тип должен иметь форму T или * T (возможно, с использованием скобок), где T - это имя типа.Тип, обозначаемый T, называется базовым типом получателя;это не должен быть указатель или тип интерфейса, и он должен быть определен в том же пакете, что и метод.Считается, что метод связан с базовым типом, а имя метода отображается только в селекторах для типа T или * T.


Считается, что метод связан сбазовый тип и имя метода видны только в селекторах для типа T или * T.

...