Ale*_*lec 3 boolean-logic julia
文档说这!
是“布尔非。实现三值逻辑”并且~
是“按位非”。
何时应该使用其中一种而不是另一种?
Python也有一个关于比较运算符的类似问题,但我不确定这些语言可能有所不同。
正如你所说,!
布尔值不是,~
按位不是。这最终有点多余,因为 bitwise not for booleans 只是 boolean ,所以你可以在任何地方使用!
你也应该能够使用~
。(对于标准 Julia 来说,这始终是正确的,只要包不添加不符合这些运算符的预期含义的方法,这一点就应该保持正确。)因此,例如,如果您是一名 Matlab 程序员,并且您是习惯了使用~
for boolean not,那么你可以继续这样做。然而,我的建议是尽可能精确地表达你的意思:如果你希望参数是布尔值,那么使用它,!
这样如果不是,你就会得到一个错误。~
如果您希望参数是整数并希望翻转其位,请使用。但坦率地说,使用布尔值没什么大不了的~
。如果参数是布尔值确实很重要,就像它在条件中使用一样,那么错误很快就会出现。
在 1.0 版本发布之前,曾有过一次关于!
从该语言中删除并使用~
布尔否定的讨论,但我们最终保留了它,!
因为它在 C 和 C++ 等语言中很常见,并且赋予它任何其他含义会令人非常困惑。但这说明删除它首先是一个选择。
归档时间: |
|
查看次数: |
619 次 |
最近记录: |