Tuple является составным типом данных. Скалярный тип может хранить только один тип данных. Например, переменная i32 может хранить только одно целочисленное значение. В составных типах мы можем хранить более одного значения за раз, и оно может быть разных типов.
Кортежи имеют фиксированную длину — после объявления они не могут увеличиваться или уменьшаться в размере. Индекс кортежа начинается с 0 .
Синтаксис
//Syntax1 let tuple_name:(data_type1,data_type2,data_type3) = (value1,value2,value3); //Syntax2 let tuple_name = (value1,value2,value3);
иллюстрация
В следующем примере значения отображаются в кортеже.
fn main() { let tuple🙁i32,f64,u8) = (-325,4.9,22); println!("{:?}",tuple); }
Синтаксис println! («{}», Tuple) нельзя использовать для отображения значений в кортеже. Это потому, что кортеж является составным типом. Используйте синтаксис println! («{:?}», tuple_name) для печати значений в кортеже.
Выход
(-325, 4.9, 22)
иллюстрация
В следующем примере отдельные значения печатаются в кортеже.
fn main() { let tuple🙁i32,f64,u8) = (-325,4.9,22); println!("integer is :{:?}",tuple.0); println!("float is :{:?}",tuple.1); println!("unsigned integer is :{:?}",tuple.2); }
Выход
integer is :-325 float is :4.9 unsigned integer is :2
иллюстрация
Следующий пример передает кортеж в качестве параметра функции. Кортежи передаются по значению в функции.
fn main(){ let b🙁i32,bool,f64) = (110,true,10.9); print(b); } //pass the tuple as a parameter fn print(x🙁i32,bool,f64)){ println!("Inside print method"); println!("{:?}",x); }
Выход
Inside print method (110, true, 10.9)
подрывающий
Разрушение присваивания — это особенность ржавчины, при которой мы распаковываем значения кортежа. Это достигается путем назначения кортежа различным переменным.
Рассмотрим следующий пример —
fn main(){ let b🙁i32,bool,f64) = (30,true,7.9); print(b); } fn print(x🙁i32,bool,f64)){ println!("Inside print method"); let (age,is_male,cgpa) = x; //assigns a tuple to distinct variables println!("Age is {} , isMale? {},cgpa is {}",age,is_male,cgpa); }
Переменная x — это кортеж, который присваивается оператору let. Каждая переменная — age, is_male и cgpa будет содержать соответствующие значения в кортеже.