Bra*_*don 4 programming-languages parentheses language-concepts
我一直认为括号提高了可读性,但在我的教科书中有一个声明,即使用括号会大大降低程序的可读性.有没有人有任何例子?
我可以找到许多反例,其中缺少括号会降低可读性,但我能想到的唯一一个例子就是作者可能有的意思是这样的:
if(((a == null) || (!(a.isSomething()))) && ((b == null) || (!(b.isSomething()))))
{
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,方法调用周围的()是不必要的,这种代码可以从将术语分解为变量中获益.由于所有这些紧密的问题处于中间状态,因此很难确切地知道什么与什么组合在一起.
boolean aIsNotSomething = (a == null) || !a.isSomething(); // parens for readability
boolean bIsNotSomething = (b == null) || !b.isSomething(); // ditto
if(aIsNotSomething && bIsNotSomething)
{
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)
我认为以上内容更具可读性,但这是个人观点.这可能就是作者所说的.
parens的一些好用途:
System.out.println("The answer is " + (a + b));可能令人困惑的使用parens:
a.isSomething()上面.在Java中,如果a是一个Object,!a本身就是一个错误,所以显然!a.isSomething()必须否定方法调用的返回值.