Krotki

Julia średnio zaawansowana

Anthony Markham

Quantitative Developer

Krotki – wprowadzenie

  • Niezmienna, uporządkowana kolekcja wartości.
  • Może zawierać wartości dowolnego typu.
  • Indeksowanie całkowitoliczbowe, tak samo jak w wektorach.
Julia średnio zaawansowana

Krotki – dlaczego?

Zalety

  • Kod jest bezpieczniejszy, gdy krotki chronimy dane przed zmianą.
  • Szybsze niż wektory, zużywają mniej pamięci.

Wady

  • Nie można sortować krotek.
  • Nie można dodawać, usuwać ani zmieniać wartości.
Julia średnio zaawansowana

Krotki – składnia

  • Krotkę definiuje się za pomocą nawiasów, oddzielając wartości przecinkami.
my_tuple = (10, 20, 30, 40)
  • Krotka może zawierać wiele typów danych.
my_mixed_tuple = (10, "Hello", 30, true)
Julia średnio zaawansowana

Krotki – indeksowanie

  • Krotki są indeksowane za pomocą liczb całkowitych (tak samo jak wektory).
my_tuple = (10, 20, 30, 40)
println(my_tuple[1])
10
println(my_tuple[2:3])
(20, 30)
Julia średnio zaawansowana

Krotki – niezmienność

  • Nie można dodawać ani usuwać wartości z krotki po jej utworzeniu.
  • Nie można modyfikować wartości zawartych w krotce.
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 średnio zaawansowana

Krotki – niezmienność

  • Krotka śledzi liczbę zawartych elementów, ponieważ nie może się ona zmieniać.
  • Jest to odzwierciedlone w typie zmiennej.
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 średnio zaawansowana

Krotki – NamedTuple

  • NamedTuple to krotka, której elementy można też odczytywać po nazwie przypisanej do wartości.
  • Każda wartość w NamedTuple jest reprezentowana przez unikalną nazwę.
  • NamedTuple ma takie same właściwości niezmienności jak krotki.
my_named_tuple = (name="Anthony", country="Australia", city="Sydney")
println(my_named_tuple[1])
println(my_named_tuple.name)
Anthony
Anthony
Julia średnio zaawansowana

Czas na ćwiczenia!

Julia średnio zaawansowana

Preparing Video For Download...