Non-Rules and myths
NR.2
Не настаивайте на наличии только одного оператора `return` в функции
Причина
Правило единственного return может приводить к излишне запутанному коду и введению лишних переменных. В частности, это правило затрудняет чтение в случае, когда в основном коде используются исключения или определённые типы исключений.
Пример
template <class T>
// T должен быть DefaultConstructible
string sign(T x)
{
if (x < 0)
return "negative";
else if (x > 0)
return "positive";
else
return "zero";
}
использовать единственный return можно только так:
template <class T>
// T должен быть DefaultConstructible
string sign(T x) // плохой стиль
{
string res;
if (x < 0)
res = "negative";
else if (x > 0)
res = "positive";
else
res = "zero";
return res;
}
Альтернатива
- Сохраняйте функции короткими и простыми.
- Используйте исключения при необходимости.