1.8 Множество
📚 Работа с множествами в Glint
Множество в языке программирования Glint представляет собой неупорядоченную коллекцию уникальных элементов. В множестве не может быть дублирующихся элементов, и порядок элементов не гарантирован.
📝 Основы работы с множествами
Создание множества
my_set is {1, 2, 3, 'a', 'b'}
Добавление элемента в множество
my_set.add 'c'
Удаление элемента из множества
my_set.remove 2
Проверка наличия элемента в множестве
write "'a' in my_set:", 'a' in my_set # Вывод: 'a' in my_set: true
Вывод содержимого множества
write "Set elements:", my_set # Примерный вывод: Set elements: {'a', 1, 3, 'c', 'b'}
Этот пример создает множество my_set
, содержащее числа и строки. Затем он добавляет новый элемент 'c'
в множество и удаляет элемент 2
. Далее он проверяет наличие элемента 'a'
в множестве и выводит содержимое множества. Множества часто используются для операций над уникальными наборами данных.
🆕 Дополнительно
В Glint добавлены дополнительные возможности для работы с множествами, которые делают их еще более мощными и удобными в использовании:
🔀 Поддержка математических операций над множествами
Glint поддерживает основные математические операции над множествами, такие как объединение, пересечение, разность и симметрическая разность.
set1 is {1, 2, 3}
set2 is {3, 4, 5}
union_set is set1 + set2 # Объединение множеств
intersection_set is set1 * set2 # Пересечение множеств
difference_set is set1 - set2 # Разность множеств
symmetric_difference_set is set1 ^ set2 # Симметрическая разность множеств
write "Union:", union_set # Примерный вывод: Union: {1, 2, 3, 4, 5}
write "Intersection:", intersection_set # Примерный вывод: Intersection: {3}
write "Difference:", difference_set # Примерный вывод: Difference: {1, 2}
write "Symmetric Difference:", symmetric_difference_set # Примерный вывод: Symmetric Difference: {1, 2, 4, 5}
🌀 Динамические множества
В Glint можно временно изменять множества внутри специальных блоков кода. После выхода из блока изменения перестают действовать, возвращая множество к исходному состоянию.
my_set is {1, 2, 3}
# Динамический блок
dynamic my_set:
my_set.add 4
my_set.remove 2
write "Inside dynamic block:", my_set # Примерный вывод: Inside dynamic block: {1, 3, 4}
# Вне блока множество возвращается к исходному состоянию
write "Outside dynamic block:", my_set # Примерный вывод: Outside dynamic block: {1, 2, 3}
🔍 Поддержка сложных запросов
В Glint добавлены методы для выполнения сложных запросов на множествах, таких как фильтрация элементов по условию.
my_set is {1, 2, 3, 4, 5, 6}
# Фильтрация элементов множества по условию
filtered_set is my_set.filter(x -> x % 2 = 0)
write "Filtered set (even numbers):", filtered_set # Примерный вывод: Filtered set (even numbers): {2, 4, 6}
Last updated