пятница, 22 февраля 2019 г.

Go FAQ: Почему в Go декларации пишутся в обратном направлении?

Декларации в Go выглядят как написанные в обратном направлении только если вы привыкли к C. В C, идея заключается в том, что переменная объявляется как выражение, обозначающее ее тип, что является хорошей идеей, но грамматики типа и выражения не очень хорошо сочетаются и результаты могут сбивать с толку; рассмотрим указатели функции. Go в основном разделяет синтаксис выражений и типов, что упрощает дело (префикс * для указателей является исключением, подтверждающим правило). В С, декларация

int* a, b;

объявляет a указателем, но не b; в Go

var a, b *int

объявляет оба указателя. Это понятнее и регулярнее. Кроме того, форма краткого объявления := утверждает, что полное объявление переменной должно представлять тот же порядок, что и :=, поэтому

var a uint64 = 1

имеет тот же эффект, что и

a := uint64(1)

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


Читайте также:


Комментариев нет:

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