Кажется, что все конкретные типы в Юлии - это типы листьев, но обратное неверно. Например, Type{Int64}
- это тип листа, но он не является конкретным:
julia> Type{Int64}.abstract
true
julia> Type{Int64}.isleaftype
true
Я понимаю, что это имеет смысл, потому что нет значений, имеющих тип Type{Int64}
. Тип Int64
имеет конкретный тип DataType
. Однако, поскольку Type{Int64}
не имеет нетривиальных подтипов, он считается типом листа.
Однако документация isleaftype
немного запутанна:
isleaftype(T)
Determine whether T is a concrete type that can have instances, meaning its
only subtypes are itself and Union{} (but T itself is not Union{}).
Type{Int64}
не может иметь экземпляры, поэтому в первом предложении предполагается, что это не тип листа. Однако действительно верно, что его только подтипы сами по себе и Union{}
, поэтому второе предложение предполагает, что оно есть.
Является ли документация, объединяющая типы листов и конкретные типы, и если да, то какой смысл правильный?