Obter tipo na matriz

8

Como posso obter o tipo dentro de uma matriz?

a = [1,2,3]

Eu posso pegar o tipo de a

typeof(a)
Vector{Int64}

mas eu realmente quero Int64. Primeiro, pensei que uma solução alternativa para iniciantes poderia ser

typeof(a[1])
Int64

mas isso não está correto, como pode ser visto aqui:

a = [1,2,3, missing]

typeof(a)
Vector{Union{Missing, Int64}}

O tipo do vetor é Union{Missing, Int64}, mas o tipo do primeiro elemento é

typeof(a[1])
Int64

Então, como obtenho o tipo do vetor / array?

Georgery
fonte

Respostas:

9

Use a eltypefunção:

julia> a = [1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> eltype(a)
Int64

julia> a = [1,2,3, missing]
e4-element Array{Union{Missing, Int64},1}:
 1
 2
 3
  missing

julia> eltype(a)
Union{Missing, Int64}
Bogumił Kamiński
fonte
1
Ha! Muito legal. Obrigado.
Georgery
1
Na outra resposta, stackoverflow.com/questions/61171531/… expandi a lógica dos dois argumentos do tipo paramétrico Array.
Bogumił Kamiński