mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-05-31 14:47:34 +02:00
1.3 KiB
1.3 KiB
Compound Types
Types | Literals | |
---|---|---|
Arrays | [T; N] |
[20, 30, 40] , [0; 3] |
Tuples | () , (T,) , (T1, T2) , ... |
() , ('x',) , ('x', 1.2) , ... |
Array assignment and access:
fn main() {
let mut a: [i8; 10] = [42; 10];
a[5] = 0;
println!("a: {:?}", a);
}
Tuple assignment and access:
fn main() {
let t: (i8, bool) = (7, true);
println!("1st index: {}", t.0);
println!("2nd index: {}", t.1);
}
Key points:
Arrays:
*Arrays have elements of the same type, T, and length, N, which is fixed.
*We can use literals to assign values to arrays.
*In the main function, the print statement asks for the debug implementation with the ?
format parameter: {a}
gives the default output, {a:?}
gives the debug output.
*Adding #
, eg {a:#?}
, invokes a "pretty printing" format, which can be easier to read.
Tuples:
*Like arrays, tuples have a fixed length.
*Tuples group together values of different types into a compound type.
*Fields that can be accessed by the period and the index of the value, e.g. t.0, t.1.