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