Primitive Compound Datatypes in Rust
Rust programming language has a concept of compound data types which collections that can group multiple types into one. In simple words, compound Datatypes are data structures that can hold multiple data elements in a single variable (or) reference. There are two primitive compound types in Rust:
- Arrays
- Tuples
The Tuple Type:
A tuple in Rust is a finite heterogeneous compound data type, meaning it can store more than one value at once. In tuples there is no inbuilt method to add elements into a tuple. We can use index to get the value of a tuple, and we also can not iterate over a tuple using for loop, unlike arrays which are mutable, meaning once declared they cannot grow or shrink.
Example:
Rust
fn main() { // creating tuple let gfg: (&str, &str, &str) = ( "Beginner" , "For" , "Beginner" ); // accessing tuple data using positional argument println!( "{} {} {}" , gfg.0, gfg.1, gfg.2); // creating another tuple let article = ( "w3wiki" , "kushwanthreddy" , 14,12,2020); let (a,b,c,d,e) = article; // accessing tuple using variables println!( "This article is written by {} at {} on {}/{}/{}" , b,a,c,d,e); } |
Output:
Beginner For Beginner This article is written by kushwanthreddy at w3wiki on 14/12/2020
The Array Type:
Arrays are the same as tuples but the difference is that Arrays can have multiple values of the same data type whereas tuples can have multiple values of multiple data types. Arrays in Rust are different from arrays in some other languages because arrays in Rust have a fixed length, like tuples. the array are written as a comma-separated list inside square brackets.
Example:
Rust
fn main() { // creating array let gfg = [ "Beginner" , "For" , "Beginner" ]; // accessing array data using positional argument println!( "{} {} {}" , gfg[0], gfg[1], gfg[2]); } |
Output:
Beginner For Beginner
In many low-level languages when you provide an incorrect index, invalid memory can be accessed. Rust protects you against this kind of error by immediately exiting instead of allowing memory access and continuing.
Contact Us