Кортеж (информатика): различия между версиями

Материал из Поле цифровой дидактики
 
Строка 12: Строка 12:
</syntaxhighlight>
</syntaxhighlight>


В языках программирования со статической типизацией кортеж отличается от списка тем, что элементы кортежа могут принадлежать разным [[Тип данных|типам]] и набор таких типов заранее определён типом кортежа, а значит, и размер кортежа также определён. С другой стороны, коллекции (списки, массивы) имеют ограничение по типу хранимых элементов, но не имеют ограничения на длину. Так, например, в языке [[Rust_(язык_программирования)|Rust]] функция может вернуть несколько значений с помощью упаковки в кортеж:
В языках программирования со статической типизацией кортеж отличается от списка тем, что элементы кортежа могут принадлежать разным [[Тип данных|типам]] и набор таких типов заранее определён типом кортежа, а значит, и размер кортежа также определён. С другой стороны, коллекции (списки, массивы) имеют ограничение по типу хранимых элементов, но не имеют ограничения на длину. Так, например, в языке [[Rust]] функция может вернуть несколько значений с помощью упаковки в кортеж:


<syntaxhighlight lang="rust" line>
<syntaxhighlight lang="rust" line>

Текущая версия на 14:44, 13 января 2023

Кортеж — упорядоченный набор фиксированной длины.

Определение других объектов через кортежи

Многие математические объекты формально определяются как кортежи. Например, ориентированный граф

В некоторых языках программирования, например, Python или ML, кортеж как тип данных встроен в язык. Пример использования кортежа в языке Python:

a = (1, 3.14, 'cat')
print(a[0]) # Напечатать первый элемент кортежа

В языках программирования со статической типизацией кортеж отличается от списка тем, что элементы кортежа могут принадлежать разным типам и набор таких типов заранее определён типом кортежа, а значит, и размер кортежа также определён. С другой стороны, коллекции (списки, массивы) имеют ограничение по типу хранимых элементов, но не имеют ограничения на длину. Так, например, в языке Rust функция может вернуть несколько значений с помощью упаковки в кортеж:

fn div_with_remainder(a: i32, b: i32) -> (i32, i32, String) {
    let tmp = (a/b, a%b);
    (tmp.0, tmp.1, format!("{} + {}", tmp.0, tmp.1))
}

let (res, rem, repr) = div_with_remainder(5,2);