Java中是否有一种优雅的编码方式:
if (10 < x < 20) {
...
}
Run Code Online (Sandbox Code Playgroud)
即"如果x在10到20之间"
而不是必须写
if ((x > 10) && (x < 20)) {
...
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
mch*_*mch 14
不.<操作员总是比较两个项目并产生一个布尔值,因此您不能"优雅地"链接它们.你可以这样做:
if (10 < x && x < 20)
{
...
}
Run Code Online (Sandbox Code Playgroud)
肯尼在评论中钉了它.
if (10 < x && x < 20)
Run Code Online (Sandbox Code Playgroud)
你想让它们保持低于或低于两者; 当你试图快速阅读时,反转比较的方向会产生令人困惑的逻辑.
不,但是你可以重新安排它以使它更好,或者如果它让你烦恼的话写一个包装:
if (InRange(x, 10, 20)) { ... }
Run Code Online (Sandbox Code Playgroud)
或者,正如卡尔所说:
if (new Range(10, 20).contains(x)) { ... }
Run Code Online (Sandbox Code Playgroud)
虽然个人而言,但我没有看到这一点.这是一个无用的抽象.裸布尔语句非常明显.
虽然,现在我想到了它,并且根据下面的Carl的评论,有时候Range是一个完全有效和有用的抽象(例如在处理Feeds时).所以,根据语义x,也许你确实需要一个抽象.
| 归档时间: |
|
| 查看次数: |
977 次 |
| 最近记录: |