我正在为我们在办公室使用的另一款软件编写一个插件,它允许用户审核他们正在处理的文件。我试图让我的工具尽可能灵活。我的想法是用户将生成一个节点树,其中可以包含其他节点作为子节点。在树的底部,节点将是条件节点,根据用户正在处理的文件将失败或通过。此外,用户可以将每个节点设置为特定的逻辑类型,包括 AND、OR、NOR、NAND .
AND: All sub nodes must pass
OR: At least one sub node must pass
NAND: At least one sub node must fail
NOR: All sub nodes must fail
我现在想弄清楚的是,如果我有一些由节点或子节点返回的布尔集合,那么将上述逻辑类型应用于此列表的最有效方法是什么?我马上开始写foreach
语句,但似乎由于二进制逻辑对计算机的工作方式如此重要,所以会有一种更好、更快、迭代更少的方法。