Подтвердить что ты не робот

Является ли синтаксис "импорт" "особым" и уникальным?

http://golang.org/ref/spec#Import_declarations

import "package1"

import ("package1";"package2")

import (
        "package1"
        "package2"
       )

Является ли синтаксис "импорт" тем, что специально сделано для импорта пакетов? Он выглядит как вызов функции, который использует ";" вместо "," для параметризации. Похоже, что это может быть даже вызов метода ruby-esque (т.е.: sans "()" )

PS Думал, я попросил бы это получить некоторую перспективу. Мне очень нравится работать с Go, но некоторые из его синтаксисов кажутся немного непоследовательными, а иногда и подробными. Заставляет меня задаться вопросом, как сложно было бы создать препроцессор для него, например, С++ был/был на C, чтобы очистить некоторый синтаксис. Назовите его Go ++ (быстрее). Я рассматриваю Objective C 2.0 как отличный пример для улучшения рабочего процесса программиста (например, словаря/массива/числовых литералов). Go ++ также был бы похож по идее на exlixir-lang.org(синтаксическое усовершенствование поверх Erlang).

4b9b3361

Ответ 1

Да import является специальным. Он должен быть в верхней части файла, и аргументы всегда являются литералами. Это должно произойти, потому что go делает многое с попытками управлять зависимостями, чтобы ускорить время сборки.

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

Что касается синтаксиса, то некоторые части не совсем приятны. Но это довольно незначительная забота обо мне и большинстве других людей, которые пишут Go, с которыми я столкнулся. С другой стороны, синтаксис мертв просто для синтаксического анализа, поэтому инструмент относительно прост, поэтому я беспокоюсь о простом изменении синтаксиса за несколько нажатий клавиш.