summaryrefslogtreecommitdiff
path: root/rust/tuples.rs
diff options
context:
space:
mode:
authorCarlos Maiolino <[email protected]>2025-07-10 22:24:20 +0200
committerCarlos Maiolino <[email protected]>2025-07-10 22:24:20 +0200
commit869e68986aa8f69af6e7842260a68d1e5c6f796f (patch)
tree63b6b5ffc3d19414233d4629a533c0d9bf3cbf72 /rust/tuples.rs
parent20834dcc57537cd95260a4a22f5d91a027adfd35 (diff)
Add a bunch of code
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'rust/tuples.rs')
-rw-r--r--rust/tuples.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/rust/tuples.rs b/rust/tuples.rs
new file mode 100644
index 0000000..2ea6c19
--- /dev/null
+++ b/rust/tuples.rs
@@ -0,0 +1,35 @@
+// Tuples are compund values
+
+fn main() {
+ let _t0: (u8, i16) = (0, -1);
+
+ // Tuples can be nested
+ let _t1: (u8, (i32, u16)) = (2, (-9, 99));
+
+ println!("{:?}", _t1);
+
+ // Long tuples can't be printed:
+ //let long_tuple = (1,2,3,4,5,6,7,8,9,10,11,12,13);
+ //println!("{:?}", long_tuple);
+
+ // Tuples can be destructured
+ let tup: (i32, f64, &str) = (1, 5.3, "corno");
+
+ let (x, y, z) = tup;
+
+ println!("{} {} {}", x,y,z );
+
+ let (x, y, z) = (9, 10, 11);
+ println!("{} {} {}", x,y,z );
+
+ let (sum, mul) = sum_mul((3, 5));
+
+ println!("{} {}",sum, mul);
+}
+
+// Tuples can be passed as function arguments
+// and used as return values
+
+fn sum_mul(nums: (i32, i32)) -> (i32, i32) {
+ (nums.0 + nums.1, nums.0 * nums.1)
+}