A Set - це колекція елементів із такими властивостями:
Створюймо їх за допомогою конструктора Set(), використовуючи як параметр будь-який ітератор.
julia> s1 = Set(1:4)
Set{Int64} with 4 elements:
4
2
3
1
Додаваймо нові елементи за допомогою push!() (так само, як із масивами), а видаляймо їх за допомогою delete!().
julia> push!(s1, 5)
Set{Int64} with 5 elements:
5
4
2
3
1
# Duplicates are ignored
julia> push!(s1, 3)
Set{Int64} with 5 elements:
5
4
2
3
1
julia> delete!(s1, 5)
Set{Int64} with 4 elements:
4
2
3
1
julia> length(s1) # length counts entries, despite the non-sequential type
4
Як і з кількома іншими типами колекцій, перевіряймо належність за допомогою оператора in або ∈ (щоб отримати символ, введіть \in, а потім натисніть Tab).
julia> 3 ∈ s1
true
Підтримуються такі операції над парами множин (скорочення для символу оператора наведено в дужках).
union(A, B) або A ∪ B (\cup): усі елементи, що належать A, B або обом.intersect(A, B) або A ∩ B (\cap): усі елементи, спільні для A і B.setdiff(A, B) (без символу): елементи, що належать A, але не B.symdiff(A, B) (без символу): елементи, що належать або A, або B, але не обом.issubset(A, B) або A ⊆ B (\subseteq) або B ⊇ A (\supseteq): true, якщо всі елементи A також належать B.issetequal(A, B) (без символу): true, якщо A і B містять точно ті самі елементи.isdisjoint(A, B) (без символу): true, якщо A і B не мають спільних елементів (тобто перетин порожній).s1 = Set(1:4)
s2 = Set(3:6)
julia> s1 ∪ s2 # union
Set{Int64} with 6 elements:
5
4
6
2
3
1
julia> s1 ∩ s2 # intersect
Set{Int64} with 2 elements:
4
3
julia> setdiff(s1, s2)
Set{Int64} with 2 elements:
2
1
julia> symdiff(s1, s2)
Set{Int64} with 4 elements:
5
6
2
1
julia> s1 ⊇ s2 # issubset
false
Існують також версії багатьох із них, які змінюють множину, з !, доданим до назви функції.
Повний список функцій наведено в посібнику.