Tuples

Intermediate Julia

Anthony Markham

Quantitative Developer

Tuples – úvod

  • Neměnná, uspořádaná kolekce hodnot.
  • Může obsahovat hodnoty libovolného datového typu.
  • Celočíselné indexování, stejně jako u vektorů.
Intermediate Julia

Tuples – proč je používat?

Výhody

  • Kód je bezpečnější, pokud používáte tuples pro data, která chcete chránit.
  • Rychlejší než vektory, nižší spotřeba paměti.

Nevýhody

  • Tuples nelze řadit.
  • Nelze přidávat, odebírat ani měnit hodnoty.
Intermediate Julia

Tuples – syntaxe

  • Tuple se definuje pomocí závorek, hodnoty se oddělují čárkou.
my_tuple = (10, 20, 30, 40)
  • Tuple může obsahovat více datových typů.
my_mixed_tuple = (10, "Hello", 30, true)
Intermediate Julia

Tuples – indexování

  • Indexování tuplu probíhá pomocí celých čísel (stejně jako u vektorů).
my_tuple = (10, 20, 30, 40)
println(my_tuple[1])
10
println(my_tuple[2:3])
(20, 30)
Intermediate Julia

Tuples – neměnnost

  • Do tuple nelze přidávat ani odebírat hodnoty po jeho vytvoření.
  • Hodnoty obsažené v tuple nelze měnit.
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)
Intermediate Julia

Tuples – neměnnost

  • Tuple sleduje počet svých prvků, protože se nemůže měnit.
  • To se odráží v typu proměnné.
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}
Intermediate Julia

Tuples – NamedTuple

  • NamedTuple je tuple, jehož prvky lze přistupovat také pomocí přiřazeného názvu.
  • Každá hodnota v NamedTuple má jedinečný název.
  • NamedTuples mají stejné vlastnosti neměnnosti jako tuples.
my_named_tuple = (name="Anthony", country="Australia", city="Sydney")
println(my_named_tuple[1])
println(my_named_tuple.name)
Anthony
Anthony
Intermediate Julia

Pojďme si procvičit!

Intermediate Julia

Preparing Video For Download...