Статьи

Открытый Майк: Скобки

Allman или K & R? Это Open Mike, серия дискуссионных сообщений, чтобы бросить кота среди голубей. Эти сообщения все о вас — мы хотим услышать ваши мнения, идеи и мысли. Для начала давайте поговорим о скобках .


«Обнимающиеся» фигурные скобки означают запись их так:

1
2
3
4
5
6
7
function showCuddlingExample():void {
    if (example) {
        //do something
    } else {
        //do something else
    }
}

Кроме того, есть стиль Allman:

01
02
03
04
05
06
07
08
09
10
11
function showAllmanExample():void
{
    if (example)
    {
        //do something
    }
    else
    {
        //do something else
    }
}

В этой записи Википедии перечислены другие распространенные стили. Что вы используете?

Мне нравится Allman, потому что вы можете сделать это:

1
2
3
4
//if (someCondition)
{
    doSomething();
}

Я могу легко отключить условную проверку, просто закомментировав оператор «если». Если бы я обнимала скобки, мне пришлось бы либо написать новую скобку, чтобы заменить «если», либо закомментировать соответствующую закрывающую скобку.


Сравните все это:

1
2
//tight
function exampleFunction(arg1:int, arg2:String):void
1
2
//space before parentheses
function exampleFunction (arg1:int, arg2:String):void
1
2
//space between variable and type
function exampleFunction(arg1 : int, arg2 : String) : void
1
2
//padded parentheses
function exampleFunction( arg1:int, arg2:String ):void

Я видел все это в различных комбинациях. Раньше я использовал «мягкие скобки», так как казалось, что легче видеть аргументы и их типы, но теперь я предпочитаю «узкие». А что насчет тебя?


Мне кажется «правильным» написать:

1
if ( (condition1) || (condition2) )

…скорее, чем:

1
if (condition1 || condition2)

… хотя первый занимает гораздо больше места. Скобки ясно показывают, где находится разделение. Но стоит ли это небольшое различие?

И последнее: спасибо Серхио с сайта www.artua.com за потрясающую иконку микрофона!