Форматирование в Go | OTUS

Форматирование в Go

Как известно, в программировании вопросы форматирования иногда вызывают ожесточенные споры, хотя, по сути, эти вопросы не являются самыми значимыми. Да и в целом, люди способны адаптироваться к разным стилям форматирования, однако все же лучше, если делать это им не нужно. Еще лучше, если разработчики тратят на это как можно меньше времени, а все придерживаются одинакового стиля. Но как обстоит дело с форматированием в Go?

В языке программирования Golang вопросами форматирования занимается программа gofmt (также она доступна как go fmt и работает она на уровне пакета, а не на уровне исходного файла). С ее помощью происходит считывание написанной Go-программы и выдача исходного кода в стандартном стиле отступов и с вертикальным выравниванием, причем комментарии сохраняются, а в случае надобности -- переформатируются. И если вы не знаете, как работать с какой-нибудь незнакомой шаблонной имплементацией кода, просто запустите gofmt. При этом никто не мешает переставить блоки в коде на свое усмотрение и даже сообщить об ошибке gofmt, если вы в этом уверены.

Благодаря gofmt, нет никакой необходимости тратить время на выравнивание, к примеру, комментариев по отношению к полям структуры -- это за вас сделает gofmt. Допустим, у вас есть следующий код:

1-1801-ac3b3f.png

Программа gofmt отформатирует код и ровно выстроит столбцы:

2-1801-93ac72.png

Теперь рассмотрим некоторые детали форматирования:

  1. Отступ. Для выполнения отступов используют табы, а gofmt осуществляет их вывод по дефолту. Что касается пробелов, то лучше их применять только тогда, когда это действительно нужно.
  2. Длина строки. У языка Go нет ограничений по длине строки, поэтому не стоит беспокоиться о переполнении. Вам кажется, что строка является слишком длинной? Просто оберните ее и выполните отступ с дополнительным табом.
  3. Скобки. Golang требует меньше скобок, чем такие языки, как Java или C, так как, например, те же управляющие структуры (if, for, switch) в своем синтаксисе не содержат скобок. Вдобавок к этому, иерархия приоритетов операторов считается более короткой и понятной -- код ниже будет означать именно то, что подразумевается пробелами, в отличие от других языков программирования:

3-1801-b4b8ff.png

По материалам https://golang-blog.blogspot.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
1 комментарий
0

полезно, но не хватает примеров в духе было / стало

Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто