Кортеж — это разделенная запятыми коллекция значений. Они используются для создания специальных структур данных, которые группируют связанные значения.
Например, («Зара Али», «Хайдарабад», 10) представляет собой 3-кортеж с двумя строковыми значениями и значением int, он имеет тип (string * string * int).
Кортежи могут быть парами, тройками и т. Д. Одного и того же или разных типов.
Некоторые примеры приведены здесь —
// Tuple of two integers. ( 4, 5 ) // Triple of strings. ( "one", "two", "three" ) // Tuple of unknown types. ( a, b ) // Tuple that has mixed types. ( "Absolute Classes", 1, 2.0 ) // Tuple of integer expressions. ( a * 4, b + 7)
пример
Эта программа имеет функцию, которая принимает кортеж из четырех значений с плавающей запятой и возвращает среднее значение —
let averageFour (a, b, c, d) = let sum = a + b + c + d sum / 4.0 let avg:float = averageFour (4.0, 5.1, 8.0, 12.0) printfn "Avg of four numbers: %f" avg
Когда вы компилируете и запускаете программу, она выдает следующий вывод:
Avg of four numbers: 7.275000
Доступ к отдельным членам кортежа
Отдельные члены кортежа могут быть оценены и напечатаны с использованием сопоставления с образцом.
Следующий пример иллюстрирует концепцию —
пример
let display tuple1 = match tuple1 with | (a, b, c) -> printfn "Detail Info: %A %A %A" a b c display ("Zara Ali", "Hyderabad", 10 )
Когда вы компилируете и запускаете программу, она выдает следующий вывод:
Detail Info: "Zara Ali" "Hyderabad" 10
F # имеет две встроенные функции, fst и snd, которые возвращают первый и второй элементы в двух кортеже.
Следующий пример иллюстрирует концепцию —
пример
printfn "First member: %A" (fst(23, 30)) printfn "Second member: %A" (snd(23, 30)) printfn "First member: %A" (fst("Hello", "World!")) printfn "Second member: %A" (snd("Hello", "World!")) let nameTuple = ("Zara", "Ali") printfn "First Name: %A" (fst nameTuple) printfn "Second Name: %A" (snd nameTuple)
Когда вы компилируете и запускаете программу, она выдает следующий вывод: