一些编程语言评估
5 == true
为true,或允许
if 5 then expr
将5转换为布尔。
朱莉娅没有。为什么呢?答案 0 :(得分:6)
因为==
是equivalence relation。
在Julia,true
,当转换为整数时,变为1
,因此1 == true
。如果true == 5
,那么为了==
保持传递性,那就意味着1 == 5
答案 1 :(得分:0)
因为它们不一样。
更详细。
数字和真值(布尔值)的概念是不同的。这两件事之间没有概念映射。当计算机创建映射时,它给每个布尔状态一个任意数字符号。数学中没有任何内容表明令牌FALSE
应映射到的数字。一个非常合理的映射是:
有一个常见的计算约定,FALSE
应该映射到零,而TRUE
应该映射到一个......或者减去一个......或者别的......或其他一切。但这不是一个严格的规则,并且在数学方面具有 no 基础。
这不仅限于朱莉娅。