Chr*_*s J 7 language-agnostic tri-state-logic
我被抛出一点点,我不确定答案是什么.
基本上 - 是否存在在三态数据类型中使用什么值的约定?做一些谷歌搜索,它看起来不像:我见过:
..在其他人中.如果有的话,我宁愿使用一个众所周知的约定.否则我会提出一个:-)很可能没有正确答案,但只是想我会深入挖掘一下......
编辑
发现这个以及微软似乎在最近的代码中使用的那个:-1 = true,0 = false,2 =未知.我假设有2 ==未知意味着当仅仅查看调试器/转储/内存中的原始值时,它消除了解释+ 1/-1的歧义.奇怪的是,这个选项仅仅因为这个原因而上诉(消除了忘记1的变化意味着'真''.
据我所知,对此没有任何约定。
布尔值甚至没有单一的约定,最常见的是:
另一个相关的常见(但不是通用)约定是使用 -1 表示未定义的值。
如果您选择使用 -1 表示未定义,则可以使用 0/1 表示 False/True:
当然,我不得不提的是,第三个状态当然不应该是未定义/未知,而是FileNotFound。;)