Per Julia 0.6, NEWS.md afferma che "Union
tipi hanno due campi, a
e b
, invece di un singolo types
campo". Inoltre, "I tipi parametrici con parametri" non specificati ", ad esempio Array
, sono ora rappresentati come tipi UnionAll
invece di DataType
s".
Così, per ottenere i tipi come una tupla, si può fare
union_types(x::Union) = (x.a, union_types(x.b)...)
union_types(x::Type) = (x,)
Se si desidera un array, basta collect
la tupla
julia> collect(union_types(Union{Int, Float64, String, Array}))
4-element Array{Type,1}:
Int64
Float64
String
Array
'raccogliere (DataType, a.types)' può essere un modo conciso per, bene, raccogliere i tipi in una matrice. –
@Gnimuc Key, grazie mille! –
@LucDanton usando 'collect' è così elegante! Ho aggiornato la mia risposta come suggerito. – Gnimuc