Tuples

Julia intermédiaire

Anthony Markham

Quantitative Developer

Tuples - introduction

  • Une collection immuable et ordonnée de valeurs.
  • Peut contenir des valeurs de tout type.
  • Indexation entière, comme pour les vecteurs.
Julia intermédiaire

Tuples - pourquoi ?

Avantages

  • Votre code est plus sûr si vous utilisez des tuples pour des données à protéger.
  • Plus rapides que les vecteurs et consomment moins de mémoire.

Inconvénients

  • Impossible de trier les tuples.
  • Impossible d'ajouter, de supprimer ou de modifier des valeurs.
Julia intermédiaire

Tuples - syntaxe

  • Définissez un tuple avec des parenthèses, séparées par des virgules.
my_tuple = (10, 20, 30, 40)
  • Un tuple peut contenir plusieurs types.
my_mixed_tuple = (10, "Hello", 30, true)
Julia intermédiaire

Tuples - indexation

  • Les tuples sont indexés par des entiers (comme les vecteurs).
my_tuple = (10, 20, 30, 40)
println(my_tuple[1])
10
println(my_tuple[2:3])
(20, 30)
Julia intermédiaire

Tuples - immutabilité

  • On ne peut pas ajouter ni retirer de valeurs d'un tuple après sa création.
  • On ne peut pas modifier les valeurs d'un tuple.
my_tuple = (10, 20, 30, 40, 50)
append!(my_tuple, 60)
MethodError: no method matching append!(::NTuple{5, Int64}, ::Int64)
my_tuple = (10, 20, 30, 40, 50)
my_tuple[1] = 15
MethodError: no method matching setindex!(::NTuple{5, Int64}, ::Int64, ::Int64)
Julia intermédiaire

Tuples - immutabilité

  • Un tuple connaît le nombre d'éléments qu'il contient, car cela ne peut pas changer.
  • Cela se reflète dans le type de la variable.
my_vector = [10, 20, 30, 40, 50]
my_tuple = (10, 20, 30, 40, 50)

println(typeof(my_vector))
println(typeof(my_tuple))
Vector{Int64}
NTuple{5, Int64}
Julia intermédiaire

Tuples - NamedTuple

  • Un NamedTuple est un tuple dont les éléments sont aussi accessibles via un nom attribué à la valeur.
  • Chaque valeur d'un NamedTuple est représentée par un nom unique.
  • Les NamedTuples ont la même immutabilité que les tuples.
my_named_tuple = (name="Anthony", country="Australia", city="Sydney")
println(my_named_tuple[1])
println(my_named_tuple.name)
Anthony
Anthony
Julia intermédiaire

Passons à la pratique !

Julia intermédiaire

Preparing Video For Download...