Декларации в Go выглядят как написанные в обратном направлении только если вы привыкли к C. В C, идея заключается в том, что переменная объявляется как выражение, обозначающее ее тип, что является хорошей идеей, но грамматики типа и выражения не очень хорошо сочетаются и результаты могут сбивать с толку; рассмотрим указатели функции. Go в основном разделяет синтаксис выражений и типов, что упрощает дело (префикс * для указателей является исключением, подтверждающим правило). В С, декларация
int* a, b;
объявляет a указателем, но не b; в Go
var a, b *int
объявляет оба указателя. Это понятнее и регулярнее. Кроме того, форма краткого объявления := утверждает, что полное объявление переменной должно представлять тот же порядок, что и :=, поэтому
var a uint64 = 1
имеет тот же эффект, что и
a := uint64(1)
Синтаксический анализ также упрощается благодаря наличию отдельной грамматики для типов, которая не просто грамматика выражения; ключевые слова, такие как func и chan проясняют ситуацию.
Читайте также:

Комментариев нет:
Отправить комментарий