有时候,我会用一些比我喜欢的括号更多的代码来编写一些代码。
if(!(new Day((((new Date()) / millisecondsPerDay) % 75)) instanceof oldDay))) {
// Bonus points if that condition made any sense to you
}
很难跟踪需要插入多少个括号,尤其是当我没有使用IDE时,当出现问题时它会立即告诉我。实际上,我敢打赌,上面的示例与括号不正确匹配。我已经将死因错误所造成的错误卡在了括号里,这比我想承认的要多得多。
我想知道是否有办法避免这种情况。我可以使用什么技术来避免必须用太多的括号括起来?
是否有任何语言都具有可以防止使用太多括号的机制?例如,我认为添加可以自动将所有括号括起来的特殊字符和一个自动将其打开的特殊字符可能会有所帮助。 (在下面的示例中为
<
和>
)if(!(new Day<new Date()) / millisecondsPerDay) % 75> instanceof oldDay>
最佳答案
一种可行的选择是在条件循环之前预先计算括号内的值。以您的代码为例:
if(!(new Day((((new Date()) / millisecondsPerDay) % 75)) instanceof oldDay))) {
// Bonus points if that condition made any sense to you
}
让我们开始分解它。
Date d1 = new Date();
var factor1 = (d1 / millisecondsPerDay ) % 75;
Day day1 = new Day (factor1);
if (!day1 instanceof oldDay) {
// do something
}
请记住,代码是供人类阅读的,之后才可供机器执行。如果找到巨大的条件,则开始对其进行预处理并将其分解。如果要花超过一秒钟的时间弄清楚您的状况正在检查,则可能太长了。
关于language-agnostic - 是否可以通过括号防止死亡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209888/