4 votes

Quelle est la logique pour taper un élément d'un tableau dans Julia ?

Je veux utiliser un tableau de Set d'entiers dans Julia, mais quand je regarde le type de chaque élément, ce n'est pas un Set, Pourquoi ?

typeof(fill(Set{Int64}[],3)[2])

renvoie à

 Array{Set{Int64},1}

et non

 Set{Int64}

Si j'utilisais des types primitifs, par exemple,

 typeof([1,2][1]) # returns Int64

mais

 typeof([Set{Int64}[],Set{Int64}[]][1]) # returns Array{Set{Int64},1}

Pourquoi y a-t-il un ensemble{Int64} entouré d'un tableau ?

5voto

Oxinabox Points 3930

Vous avez écrit typeof(fill(Set{Int64}[],3)[2])

Set{Int}[] est une autre façon d'écrire Vector{Set{Int}} . En général, cette méthode a plus de sens lorsqu'elle est utilisée pour la construction d'un tableau non vide, par exemple Int128[1,2,3]

Vous vouliez probablement Set{Int}() pour obtenir un seul jeu. Consultez typeof(fill(Set{Int64}(), 3)[2])

Cependant cela remplira le tableau avec 3 références au même ensemble. Donc, en muter une les mutera toutes. C'est rarement ce que vous voulez.

Probablement que ce que tu voulais vraiment était : [Set{Int}() for _ in 1:3]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X