我正在查看来自API的JSON数据集,我看到这样的东西:
"lights_on":1,
"lights_off":0,
"doors_locked":0,
"doors_unlocked":1,
"sensors_tripped":0,
"sensors_not_tripped":1
只是我,或者对于布尔值的两种状态都有一个变量有点傻吗?在这个例子中,检查lights_on
的值是否更有意义,如果0
必须是false
,如果1
它必须是true
1}}
上述JSON数据集对true
和false
状态的变量有什么优势?我应该在我的程序中使用它吗?
答案 0 :(得分:3)
这仅仅是模拟真实世界的条件,你需要'true'和'false'变量来响应。它们的默认值是'false',这意味着没有做出任何决定。如果两者都设置为'真',那么就会做出不合理的决定。这是确保软件正常工作的一种方法。
很多但同样的情况适用于“门打开”或“门关闭”的远程接触开关。通过让两个状态返回进行软件分析,用户知道导线没有短路,这可能导致打开和关闭状态(不合逻辑),并且两根导线都不是假的,这通常意味着电缆已被切断或传感器是这是最简单的自检形式,以确保软件或硬件状态报告的来源有效。
这将隐含地用于代码块读取的地方现实世界的布尔输入,下一个代码块将读取'true'和'false'标志,以确保有一个有效的答案。同样在现实条件下,数字滤波器将用于确保答案在1/10秒内保持相同,具体取决于软件必须响应变化的速度。
然后更多的下游代码将通过发出状态报告,发出警报,更新日志或任何被认为重要的功能来采取行动。
我在我的几个ATE中构建了这些多阶段线程用于测试产品的单位。
实际输入可能有噪音并且软件创建布尔可能有错误,因此任何歧义必须 在终点之前被过滤掉软件采取现实行动。