长函数调用的可读性

Readability of long function calls

本文关键字:可读性 函数调用      更新时间:2023-10-16

我一直在编写使用函数调用的代码,这些函数调用非常长,通常超过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个字符?

我会考虑将函数调用放在单独的行中:

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

您甚至可以给value变量一个很好的描述性名称,以帮助理解代码。

将返回值存储在变量中是我认为最好的解决方案。但是你可以做些别的:

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

你有两个选择:

1)

接受它的样子

2)

在单独的语句(伪代码)中计算函数调用的返回值

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

不要让我们开始这个,我想

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