Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 3.54 KB

01. Форматування.md

File metadata and controls

38 lines (29 loc) · 3.54 KB

Форматування

Питання форматування є найбільш суперечливими, але водночас найменш значущими. Люди можуть адаптуватися до різних стилів форматування, але краще, якщо їм взагалі не доведеться цього робити, і менше часу приділяється темі, якщо всі дотримуються одного стилю. Проблема полягає в тому, як підійти до цієї утопії без необхідності в довгому керівництві по стилю.

У Go ми застосовуємо незвичний підхід і дозволяємо машині подбати про більшість проблем форматування. Програма gofmt (також доступна як go fmt, яка працює на рівні пакетів, а не на рівні вихідного файлу) читає програму на Go і видає вихідний текст у стандартному стилі з відступами й вертикальним вирівнюванням, зберігаючи й, за необхідності, переформатовуючи коментарі. Якщо ви хочете дізнатися, як впоратися з якоюсь новою стилістичною ситуацією, запустіть gofmt; якщо відповідь не здається вам правильною, переробіть вашу програму (або повідомте про ваду в gofmt), а не обходьте її стороною.

Наприклад, не потрібно витрачати час на вирівнювання коментарів до полів структури, адже gofmt зробить це за вас. У наступному оголошенні

type T struct {
    name string // ім'я об'єкта
    value int // його значення
}

gofmt самостійно вирівняє колонки:

type T struct {
    name    string // ім'я об'єкта
    value   int    // його значення
}

Весь код Go у стандартних пакетах було відформатовано за допомогою gofmt.

Дуже коротко про деякі деталі форматування:

Відступи

Ми використовуємо табуляцію для відступів і gofmt робить це за замовчуванням. Використовуйте пробіли лише за крайньої потреби.

Довжина рядка

Go не має обмежень на довжину рядка. Не хвилюйтеся про його переповнення. Якщо рядок здається вам занадто довгим, загорніть його і зробіть відступ за допомогою додаткової табуляції.

Дужки

Go потребує менше круглих дужок, ніж C та Java: керуючі структури (if, for, switch) не мають круглих дужок у своєму синтаксисі. Крім того, ієрархія пріоритетів операторів коротша і зрозуміліша, тому

x<<8 + y<<16

не потребує додавання пробілів, на відміну від інших мов.