inferring types

This commit is contained in:
Vincent Batts 2023-01-15 14:52:11 -05:00
parent baec55b750
commit 70ca7bb74d
23 changed files with 12 additions and 37 deletions

View File

@ -1,40 +1,15 @@
// TODO
#![allow(unused_variables, dead_code)]
fn interesting() -> i32 {
// this code compiles and doesn't complain about being unused or not returning the correct
// thing, but will hit a runtime error if/when this is called
unimplemented!();
}
fn transpose(matrix: [[i32; 3]; 3]) -> [[i32; 3]; 3] {
let matrix_new = [
[matrix[0][0], matrix[1][0], matrix[2][0]], // newline
[matrix[0][1], matrix[1][1], matrix[2][1]],
[matrix[0][2], matrix[1][2], matrix[2][2]],
];
return matrix_new;
}
fn pretty_print(matrix: &[[i32; 3]; 3]) {
println!("[");
for row in matrix {
println!(" [ {} {} {} ]", row[0], row[1], row[2]);
}
println!("]");
}
fn main() {
let matrix = [
[101, 102, 103], // we want the newline here
[201, 202, 203],
[301, 302, 303],
];
let x = 10;
let y = 20;
println!("matrix:");
pretty_print(&matrix);
let transposed = transpose(matrix);
println!("transposed:");
pretty_print(&transposed);
takes_u32(x);
takes_i8(y);
}
fn takes_u32(x: u32) -> () {
println!("{x}");
}
fn takes_i8(x: i8) -> () {
println!("{x}");
}

Binary file not shown.