Читаемость длинных вызовов функций

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

LongFunctionName(first_argument,
another_argument,
finally_last_argument);

Тем не менее, это выглядит странно, когда я пытаюсь поместить это в выражение if, главным образом потому, что становится не очень понятно, с каким значением оно сравнивается:

if(LongFunctionName(first_argument,
another_argument,
finally_last_argument) != value_compared_to)
{
// stuff to be called
}

Как бы вы отформатировали это утверждение, чтобы оно было более читабельным и вписывалось в 80 символов?

2

Решение

Я хотел бы рассмотреть вопрос о вызове функции в отдельной строке:

const auto value = LongFunctionName(first_argument,
another_argument,
finally_last_argument);
if (value != value_compared_to) {
// ...
}

Вы даже можете дать value переменная хорошее описательное имя, которое помогает понять код.

8

Другие решения

Хранение возвращаемого значения в переменной является лучшим решением imo. Но вы можете сделать что-то еще:

if (value_compared_to != LongFunctionName(first_argument,
another_argument,
finally_last_argument))
3

У вас есть два варианта:

1)

Примите, что это выглядит так

ИЛИ ЖЕ

2)

Оцените возвращаемое значение вызова функции в отдельном операторе (псевдокод)

retval = LongFunctioName(first_argument, second_argument, third_argument);
if(retval != desired_val) { ... }
0

Не начинайте нас на этом, я бы сделал

if
(       LongFunctionName
(       first_argument
,       another_argument
,       finally_last_argument
) != value_compared_to
)
{
// stuff to be called
}
0
По вопросам рекламы [email protected]