With Julia 1.10.4:
julia> [("a", true), ("b", false)]
2-element Vector{Tuple{String, Bool}}:
("a", 1)
("b", 0)
Here true / false are confusingly printed as 1 / 0.
With Julia 1.10.4:
julia> [("a", true), ("b", false)]
2-element Vector{Tuple{String, Bool}}:
("a", 1)
("b", 0)
Here true / false are confusingly printed as 1 / 0.
The behavior seems to depend on exactly what you print:
julia> [["a", true], ["b", false]]
2-element Vector{Vector{Any}}:
["a", true]
["b", false]
julia> [("a", true), ("b", false)]
2-element Vector{Tuple{String, Bool}}:
("a", 1)
("b", 0)
Arrays of tuples trigger 0/1 printing, but arrays of Vector{Any}
donβt trigger this. I guess the bool
type needs to appear explicitly to trigger this behavior.
Yes, it looks at the :typeinfo
parameter of the IOContext
β if the type Bool
has already been displayed (e.g. as part of the array type), then it prints the compact numerical value.
In Julia, Bool
values are a type of number, and true
and false
are equal to 1
and 0
, respectively:
julia> Bool <: Integer
true
julia> true == 1
true
julia> false == 0
true