forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   "return!" (и чем скорее, тем лучше) (http://forum.boolean.name/showthread.php?t=13297)

Жека 07.09.2010 16:21

"return!" (и чем скорее, тем лучше)
 
Захотелось мне рассказать о своём подходе кое к какой вещи в коде.
Вещь заключается в том, что я стараюсь не углубляться в условия, а выходить из функций при первой возможности.
Что это даёт мне?
1. нет длинной "лестницы" (вложенности) отступов.
2. читаемость проще (привычнее) становится (если сложнее, то я выбираю ветвление вглубь)

Примеры:

Код:

public CBaseObject fnSortByPosition()
{
    if(objsCount == 0)
        return null;   
   

    CBaseObject obj;

    for(int k=0;k<objsCount;++k)
    {   
        if(!(listObjs[k] instanceof CUser)) //если не юзер, то пропускаем
            continue;

        //........
        //и тут основной код
        //
        //
        //
    }
}

public CBaseObject fnSortByPosition()
{
    if(objsCount > 0)
    {       
        CBaseObject obj;

        for(int k=0;k<objsCount;++k)
        {   
            if(listObjs[k] instanceof CUser) //если это юзер, то делаем
            {
                //........
                //и тут основной код
                //
                //
                //
            }
        }
    }
}

Всё. Всем привет!

impersonalis 07.09.2010 16:44

Ответ: "return!" (и чем скорее, тем лучше)
 
Цитата:

1. нет длинной "лестницы" (вложенности) отступов.
2. читаемость проще (привычнее) становится (если сложнее, то я выбираю ветвление вглубь)
дельно, но имхо очевдино.
Недостаток - если функция создаёт ряд динамических объектов (которые необходимо удалить), то копи-паст участка "удаление объектов" перед каждым ретурном необходим.

ABTOMAT 07.09.2010 16:59

Ответ: "return!" (и чем скорее, тем лучше)
 
Ну дык дык, я думал, уже все допёрли (хотя кто знает, может, кто сейчас-то и просветится)

Venom2 07.09.2010 20:20

Ответ: "return!" (и чем скорее, тем лучше)
 
Цитата:

Сообщение от impersonalis (Сообщение 161202)
Недостаток - если функция создаёт ряд динамических объектов (которые необходимо удалить), то копи-паст участка "удаление объектов" перед каждым ретурном необходим.

Для мэнеджед языков нет, у локальных экземпляров классов при выходе вызывается деструктор.

IGR 07.09.2010 20:40

Ответ: "return!" (и чем скорее, тем лучше)
 
ага, есть такое !! аж непривычно))

Phantom 07.09.2010 21:51

Ответ: "return!" (и чем скорее, тем лучше)
 
Я кстати первые года полтора кодил и не знал, что return можно вызывать в любом месте функции :rolleyes:

IGR 08.09.2010 00:41

Ответ: "return!" (и чем скорее, тем лучше)
 
вообще ретурн, чесно говоря моя любимая команда !! Она символизирует собой некое решение которое получает та часть кода, которая его востребовала !!
И кода пишеш ретурн, чувствуеш что на маленький шаг подошел к дрстижению результата !! Вообщем ретурн это классно !! :) :)


Часовой пояс GMT +4, время: 23:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot