Вы используете терминал без GUI? Если у вас нет доступа к IDE, все, о чем я могу думать, это использовать команду Linux, например grep
, для поиска во многих файлах внутри папки пакета для var <variableName>
терминов.
Если у вас есть пакет с именем test
с 100 файлами, и вы хотите знать, где находится boo
переменная пакета верхнего уровня, затем выполните:
grep -nw /path/to/test/*.go -e '^var boo'
Объяснение:
-
-n
для вывода номера строки -w
обозначает целое слово -e
для шаблона
Использование /*.go
вместо -r
флаг, чтобы удостовериться, что он ищет только в .go
файлах в каталоге верхнего уровня (также не ищет в подпакетах).
ВНИМАНИЕ: это предполагает, что все файлы правильно отформатированы с помощью gofmt
например, и все переменные пакета не имеют отступ. Если случайно переменная имеет отступ с пробелами / табуляцией, вы можете просто пропустить ^
в шаблоне, но это, вероятно, также обнаружит var boo
локальные переменные внутри функций.
Если в пакете слишком много переменные уровня пакета и пакет большой, тогда это может быть проблемой. Переменные верхнего уровня похожи на глобальные переменные, которых лучше избегать, если вы не знаете, что делать.
Кстати, выполнение go build -v
или запуск других инструментов с -v
будет выводить дополнительную информацию, такую как пакеты, которые построен вдоль. Это может помочь вам в поиске.