我经常看到这样的代码(C,C++,有时候是Java):
return (value);
Run Code Online (Sandbox Code Playgroud)
我认为这些括号没有任何好处.所以我的问题是,假设程序员return是某种以返回值作为参数的函数,或者这些括号是否有意义?
我知道这里已经提出了类似的问题,但这只与ANSI C有关.我想知道是否有特定于C++或Java的方面尚未得到解答.
Har*_*ris 20
关于C.
括号放在有表达式的地方,并且希望返回值为表达式的值.即使这样也不需要括号.写一些类似的东西是完全可以的
return x + y;
Run Code Online (Sandbox Code Playgroud)
程序员确实使它return (x + y);更具可读性.
所以,括号是一个意见和实践的问题.
有一个神秘的案例,括号很重要.引用这个问题
int var1 = 42;
decltype(auto) func1() { return var1; } // return type is int, same as decltype(var1)
decltype(auto) func1() { return(var1); } // return type is int&, same as decltype((var1))
Run Code Online (Sandbox Code Playgroud)
您可以看到返回的值不同,这是由括号引起的.您可以通过这个答案来详细了解.
编码惯例建议配合使用
return x + y;
Run Code Online (Sandbox Code Playgroud)
要了解更多,请阅读此答案.
从技术上讲,没有理由将给定的表达式加上括号return。这真的是一个品味问题。
也就是说,return如果表达式使用布尔运算符,我通常会用括号括起来。由于此类运算符通常被视为 a whileor 的一部分if,因此除了在我看来跳跃之外,您还想用该值做一些事情变得更加清楚。
int out_of_range(int x)
{
return ((x < 1) || (x > 10));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |