1.7 Кортежи

📚 Работа с кортежами в Glint

Кортежи в языке программирования Glint представляют собой упорядоченные неизменяемые коллекции объектов. Они могут содержать элементы различных типов данных, и их элементы доступны по индексу.

📝 Основы работы с кортежами

Создание кортежа

my_tuple is (1, 2, 'a', 'b')

Доступ к элементам кортежа

write "First element:", my_tuple[0]  # Вывод: First element: 1
write "Second element:", my_tuple[1]  # Вывод: Second element: 2
write "Third element:", my_tuple[2]  # Вывод: Third element: a
write "Fourth element:", my_tuple[3]  # Вывод: Fourth element: b

Этот пример создает кортеж my_tuple, содержащий числа и строки, и демонстрирует доступ к его элементам по индексу. Кортежи обычно используются для представления наборов данных, которые не должны изменяться после создания.

🆕 Дополнительно

В Glint добавлены уникальные возможности для работы с кортежами, которые делают их еще более мощными и удобными в использовании:

🌀 Автоматическое объединение кортежей

Теперь кортежи можно объединять с помощью оператора +, создавая новый кортеж, содержащий элементы обоих кортежей.

tuple1 is (1, 2, 3)
tuple2 is ('a', 'b', 'c')
combined_tuple is tuple1 + tuple2
write "Combined Tuple:", combined_tuple  # Вывод: Combined Tuple: (1, 2, 3, 'a', 'b', 'c')

🔄 Преобразование кортежа в список и обратно

Для удобства работы с элементами кортежей можно временно преобразовать кортеж в список и обратно.

my_tuple is (1, 2, 3)
my_list is my_tuple.to_list()
my_list.append(4)
my_tuple is my_list.to_tuple()
write "Modified Tuple:", my_tuple  # Вывод: Modified Tuple: (1, 2, 3, 4)

📈 Расширенные методы работы с кортежами

  • count value: Возвращает количество вхождений элемента в кортеж.

  • index value: Возвращает индекс первого вхождения элемента в кортеж.

  • contains value: Проверяет наличие элемента в кортеже (возвращает true или false).

my_tuple is (1, 2, 3, 2, 2)
count_of_twos is my_tuple.count 2
index_of_first_two is my_tuple.index 2
contains_four is my_tuple.contains 4

write "Count of 2s:", count_of_twos  # Вывод: Count of 2s: 3
write "Index of first 2:", index_of_first_two  # Вывод: Index of first 2: 1
write "Contains 4:", contains_four  # Вывод: Contains 4: false

✨ Динамические кортежи

В Glint есть уникальный функционал — динамические кортежи. Это кортежи, которые могут временно изменяться внутри специальных блоков кода. После выхода из блока изменения перестают действовать, возвращая кортеж к исходному состоянию.

my_tuple is (1, 2, 3)

# Динамический блок
dynamic my_tuple:
    my_tuple is my_tuple.to_list
    my_tuple.append 4
    my_tuple is my_tuple.to_tuple
    write "Inside dynamic block:", my_tuple  # Вывод: Inside dynamic block: (1, 2, 3, 4)

# Вне блока кортеж возвращается к исходному состоянию
write "Outside dynamic block:", my_tuple  # Вывод: Outside dynamic block: (1, 2, 3)

Last updated