ailkiv написав:P.Y. написав:*але це не та красива вайтсмітсівська структура...
Ну не знаю, мабуть, це справа звички, мені наприклад ріже око, такий стиль.
Зневадження, коли втиканув десь дужку поставити. Як на мене, краще незручність читання у такій ситуації (пошуку синтаксичних помилок), ніж незручність читання коду коли шукаєш логічну помилку.
Проблема в тому, що пропущена пара дужок не є синтаксичною помилкою — лише відхиленням від конвенції. Тобто,
if (a>0){
b();
for( ; ; )
c();
d();
}
буде так само синтаксично коректним, як і
if (a>0){
b();
for( ; ; ){
c();
d();
}
}
але результат їх роботи відрізнятиметься. Звичайно, розумні ІДЕ попереджають також і про відхилення від конвенції (що трохи полегшує роботу), але обов'язковість дужок у блоці з єдиним оператором робить код менш компактним (особливо якщо це щось назразок if(...) break;). Перевага вайтсмітсівського стилю в тому, що фігурні дужки стоять рівно навпроти блоку операторів, якого стосуються — таким чином, можна осмислено використовувати їх лише там, де вони потрібні, без великого ризику сплутати поодинокий оператор і блок.