2

我一直在编写使用非常长且通常超过 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 个字符?

4

4 回答 4

8

我会考虑将函数调用放在自己的行上:

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

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

于 2013-04-14T15:29:56.340 回答
3

将返回值存储在变量中是 imo 的最佳解决方案。但你可以做其他事情:

if (value_compared_to != LongFunctionName(first_argument,
                                          another_argument,
                                          finally_last_argument))
于 2013-04-14T15:31:59.693 回答
0

你有两个选择:

1)

接受它看起来是这样的

或者

2)

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

retval = LongFunctioName(first_argument, second_argument, third_argument);
if(retval != desired_val) { ... }
于 2013-04-14T15:30:39.833 回答
0

不要让我们开始那个,我会做的

if
(       LongFunctionName
        (       first_argument
        ,       another_argument
        ,       finally_last_argument
        ) != value_compared_to
)
{
        // stuff to be called
}
于 2013-04-14T15:31:01.420 回答