为什么在布尔表达式中没有隐式转换非布尔值?

时间:2015-04-01 11:29:59

标签: implicit-conversion julia boolean-expression

一些编程语言评估

5 == true

为true,或允许

if 5 then expr

将5转换为布尔。

朱莉娅没有。为什么呢?

2 个答案:

答案 0 :(得分:6)

因为==equivalence relation

在Julia,true,当转换为整数时,变为1,因此1 == true。如果true == 5,那么为了==保持传递性,那就意味着1 == 5

答案 1 :(得分:0)

因为它们不一样。

更详细。
数字和真值(布尔值)的概念是不同的。这两件事之间没有概念映射。当计算机创建映射时,它给每个布尔状态一个任意数字符号。数学中没有任何内容表明令牌FALSE应映射到的数字。一个非常合理的映射是:

  1. FALSE
  2. TRUE
  3. FileNotFound
  4. 有一个常见的计算约定,FALSE应该映射到零,而TRUE应该映射到一个......或者减去一个......或者别的......或其他一切。但这不是一个严格的规则,并且在数学方面具有 no 基础。

    这不仅限于朱莉娅。