布尔

对于Bool的相关知识参见布尔逻辑

运算

表达式 名称
!x否定
x && y短路与
x || y短路或
julia> !true
false

julia> true && "foo"
"foo"

julia> false && "foo" # 短路意味着前一个表达式为否时,不会关心后一个表达式
false

julia> false || "foo"
"foo"

julia> true || "foo"
true

布尔在julia中其实是整数的一类(Bool <: Integer),即false可以被提升为0,而true可以被提升为1

特别地,false可以用于

julia> NaN*0
NaN

julia> NaN*false
0.0

缺失

缺失(Missing),具有唯一值missing,与一些语言的null相似,但不完全相似

对于大部分操作,missing会传递

julia> missing==missing
missing

julia> missing+8
missing

julia> ismissing(missing) # 3种判断方式
true

julia> isequal(missing,missing)
true

julia> missing===missing
true

特别地,对于islessmissing被认为比任何其它值大

三值逻辑

三值逻辑是由truefalsemissing共同组成的

对于所有的短路运算,仍保持短路规则

若有参数为missing,则返回missing

julia> true || missing # 短路原则
true

julia> false || missing # 缺失原则
missing