language-agnostic - 是否可以通过括号防止死亡?

标签 language-agnostic parentheses

有时候,我会用一些比我喜欢的括号更多的代码来编写一些代码。

 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/

相关文章:

algorithm - 不同解析算法之间的运行时差异是什么?

Java:创建对象实例时带括号的类名

python - 获取嵌套括号中的所有文本 (Python)

algorithm - 平衡括号

parentheses - 检查括号是否平衡 - 没有堆栈

language-agnostic - 函数的常见且合理的参数顺序是什么?

language-agnostic - 事物如何在视觉上表现出来?

javascript - const Component = () => (<div></div>) 与 React 中的 const Component = () => {return(<div></div>)} 相同吗?

并发/并行组合

linux - 在 Linux 上运行可执行文件最安全的方法是什么?