Skip to content

О терминологии «присваивание»

Позже, когда упоминается слово «присваивание», оно может означать чистое присваивание, короткое объявление переменной или спецификацию переменной с начальными значениями в стандартном объявлении переменной.

Мы говорим, что x можно присвоить y , если это используется в контексте y = x. Предположим, что тип y равен Ty, иногда для удобства описания мы также можем сказать , что x присваивается типу Ty .

Как правило, если x присваивается y, то y должен быть изменяемым, а типы x и y идентичны или x могут быть неявно преобразованы в тип y. Конечно, y может быть и пустой идентификатор _.

Каждая локальная объявленная переменная должна быть эффективно использована хотя бы один раз.

Обрати внимание, что стандартный компилятор Go и gccgo не позволяют объявлять локальные переменные и не использовать их. Переменные уровня пакета не имеют такого ограничения.

Если локальная переменная используется только как целевое значение, она также будет рассматриваться как неиспользуемая.

Например, в следующей программе r используется только как пункт назначения.

Компиляция вышеуказанной программы приведет к следующим ошибкам компиляции (предположим, что исходный файл имеет имя example-unused.go).

Это легко исправить: мы можем присвоить r и s пустые идентификаторы, чтобы избежать ошибок компиляции.

Как правило, указанное выше исправление не рекомендуется использовать в рабочем коде. Его следует использовать только на этапе разработки/отладки. Не рекомендуется оставлять неиспользуемые локальные переменные в коде, так как они отрицательно влияют как на читабельность кода, так и на производительность выполнения программы.

Отношения зависимости переменных уровня пакета влияют на порядок их инициализации.

Для следующего примера

порядок инициализации переменных уровня пакета: y = 5, c = y, b = c+1, a = b+1 и x = a+1.

Здесь + символ — это оператор сложения.

Переменные уровня пакета не могут циклически зависеть в своем объявлении. Следующий код не компилируется.