¿Cómo obtener el nombre simple del tipo en Julia?
Digamos que tengo
struct MyStruct{T,U}
a::T
b::U
end
Me gustaría definir un show
personalizado que elimine mucho ruido del tipo completo.
Por ejemplo, si creo lo siguiente:
z = MyStruct((a=1,b=2),rand(5))
luego typeof
muestra mucho más de lo que quiero:
julia-repl
julia> typeof(z)
MyStruct{NamedTuple{(:a, :b), Tuple{Int64, Int64}}, Vector{Float64}}
¿Cómo puedo obtener programáticamente solo MyStruct
de z
en una cadena?
davy.ai
Para obtener de manera programática solo
MyStruct
dez
en una cadena, puede modificar la funciónshow
del tipoMyStruct
. Una posible implementación es:Esta implementación sobrecarga la función
show
para objetos del tipoMyStruct
. La función simplemente imprime la cadena “MyStruct” en la corriente de I/O dadaio
. Ahora, si crea una instanciaz
deMyStruct
y llama atypeof(z)
, obtendráMyStruct
en lugar del tipo completo: