Это считается плохой практикой использования возврата для завершения функции? - PullRequest
4 голосов
/ 11 мая 2011

Я разработчик PHP и ActionScript, и в некоторых своих функциях я использую return, чтобы завершить его.Пример:

private function lolsome(a:String):void
{
   if(a == "abs"){return void;}

   // function's code      
}

Я мог бы просто поместить код функции в else, но я предпочитаю этот способ, потому что, на мой взгляд, это более разборчиво.Я просто хочу знать, считается ли это плохой практикой или что-то в этом роде.

Спасибо!

Ответы [ 5 ]

5 голосов
/ 11 мая 2011

Неа.Не за что.На самом деле это часто важная часть потока управления:

for x in someiterable:
    if somecondition:
        return somevalue
return None

Это может произойти, если вы перебираете последовательность, ища что-то, удовлетворяющее определенному условию.Если вы обнаружите что-то, вы вернете это и предотвратите дальнейшую обработку.Если вы его никогда не найдете, вы вернете значение по умолчанию.

4 голосов
/ 11 мая 2011

Я бы счел это плохой практикой, если у вас есть возврат внутри длинных сложных функций, потому что кому-то еще может быть труднее понять алгоритм, глядя на него.Тем не менее, это плохая практика - иметь большие длинные функции в первую очередь (их обычно следует разделять на несколько более мелких функций).

В целом, я бы рассмотрел проверку параметров и состояния в начале функции ипросто возвращаясь, чтобы быть хорошей практикой, даже не просто в порядке.

Но все же будьте осторожны, чтобы не засорять функцию несколькими различными возвратами в основной логике.

1 голос
/ 19 мая 2011

Для дальнейшего интересного прочтения посмотрите "несколько против одного возврата" в Google. Много тепла там. Альтернатива, как правило, заключается в том, чтобы удерживать ваше возвращение в состоянии и возвращать его только один раз в конце. Лично я предпочел бы выбросить как можно скорее, а не рисковать изменением состояния в дальнейшем; меньшие, более сфокусированные методы помогают остановить это.

Я бы сказал, что ваша практика здесь в порядке.

1 голос
/ 11 мая 2011

Я бы не стал считать это плохой практикой. Широко используется.

0 голосов
/ 11 мая 2011

Я использую его, когда мне лень объявить флаг и проверить его. Но дело в том, что если вы используете команды break, return и подобные инструкции в середине кода, вам иногда придется реорганизовывать их при добавлении функциональных возможностей.

Так что я считаю это плохой практикой, но очень используемой. Ну это только мое мнение: p

...