Skip to content

Правила форматирования потока управления ​


§5 Поток управления ​

§5.1 Выражение if. Ключевое слово if отделяется от условия пробелом, а условие отделяется от блока кода пробелом.

// ✅ Верно
if condition { ... }

// ❌ Неверно
if(condition) { ... }
if condition{ ... }

§5.2 else if/else. else if и else отделяются от предыдущего блока кода пробелом.

// ✅ Верно
if a > 0 { ... } else if a < 0 { ... } else { ... }

// ❌ Неверно
if a > 0 { ... }else if a < 0 { ... }else { ... }

§5.3 Цикл for. Ключевое слово for, переменная, ключевое слово in и итератор разделяются пробелами.

// ✅ Верно
for item in collection { ... }

// ❌ Неверно
for item in(collection) { ... }
for(item) in collection { ... }

§5.4 Цикл while. Ключевое слово while отделяется от условия пробелом.

// ✅ Верно
while condition { ... }

// ❌ Неверно
while(condition) { ... }

§5.5 Метка цикла. Метка соединяется с ключевым словом цикла через : .

// ✅ Верно
'outer: for i in range(10) { ... }

// ❌ Неверно
'outer:for i in range(10) { ... }
'outer : for i in range(10) { ... }

§5.6 Оператор Return ​

§5.6.1 Формат Return. Ключевое слово return отделяется от выражения пробелом.

// ✅ Верно
return 42;
return x + y;

// ❌ Неверно
return(42);  // Отсутствует пробел
return  42;  // Лишний пробел

§5.6.2 Пустой Return. Для пустого return используется непосредственно ключевое слово return.

// ✅ Верно
return;

// ❌ Неверно
return ;  // Лишний пробел
return void;  // void не требуется

§5.7 Оператор Break ​

§5.7.1 Формат Break. Ключевое слово break отделяется от метки пробелом.

// ✅ Верно
break;
break 'outer;

// ❌ Неверно
break(outer);  // Неверный синтаксис
break  'outer;  // Лишний пробел

§5.8 Оператор Continue ​

§5.8.1 Формат Continue. Ключевое слово continue отделяется от метки пробелом.

// ✅ Верно
continue;
continue 'outer;

// ❌ Неверно
continue(outer);  // Неверный синтаксис
continue  'outer;  // Лишний пробел