Tuple

Julia intermedio

Anthony Markham

Quantitative Developer

Tuple - introduzione

  • Collezione ordinata e immutabile di valori.
  • Può contenere valori di qualsiasi tipo.
  • Indicizzazione intera, come nei vettori.
Julia intermedio

Tuple - perché?

Vantaggi

  • Il codice è più sicuro se usi tuple per dati da proteggere.
  • Più veloci dei vettori e usano meno memoria.

Svantaggi

  • Non puoi ordinare le tuple.
  • Non puoi aggiungere, eliminare o cambiare valori.
Julia intermedio

Tuple - sintassi

  • Definisci una tuple con parentesi tonde, separando i valori con virgole.
my_tuple = (10, 20, 30, 40)
  • Una tuple può contenere più tipi di dato.
my_mixed_tuple = (10, "Hello", 30, true)
Julia intermedio

Tuple - indicizzazione

  • Le tuple si indicizzano con interi (come i vettori).
my_tuple = (10, 20, 30, 40)
println(my_tuple[1])
10
println(my_tuple[2:3])
(20, 30)
Julia intermedio

Tuple - immutabilità

  • Non puoi aggiungere o rimuovere valori da una tuple dopo la creazione.
  • Non puoi modificare i valori dentro una 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 intermedio

Tuple - immutabilità

  • Una tuple memorizza il numero di elementi, perché non può cambiare.
  • Questo si riflette nel tipo della variabile.
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 intermedio

Tuple - NamedTuple

  • Un NamedTuple è una tuple i cui elementi si possono anche accedere tramite un nome assegnato al valore.
  • Ogni valore in un NamedTuple ha un nome univoco.
  • I NamedTuple hanno la stessa immutabilità delle tuple.
my_named_tuple = (name="Anthony", country="Australia", city="Sydney")
println(my_named_tuple[1])
println(my_named_tuple.name)
Anthony
Anthony
Julia intermedio

Passons à la pratique !

Julia intermedio

Preparing Video For Download...