53 lines
856 B
Rust
53 lines
856 B
Rust
pub fn run() {
|
|
println!("ARRAYS");
|
|
|
|
// in rust arrays are values
|
|
// unlike in c where arrays are an address
|
|
let a = [3, 2, 7, 6, 8];
|
|
println!("{a:?}"); // debug print
|
|
|
|
let mut a = [3, 2, 7, 6, 8];
|
|
a[0] = -3;
|
|
println!("{a:?}");
|
|
|
|
print_array5(a);
|
|
double_array5(&mut a);
|
|
print_array5_v2(&a);
|
|
|
|
super::slices::double(&mut a);
|
|
}
|
|
|
|
fn print_array5(a: [i32; 5]) {
|
|
// 0..5 is non inclusive
|
|
for i in 0..5 {
|
|
println!("{}", a[i]);
|
|
}
|
|
|
|
/* this works also
|
|
x is i32
|
|
for x in a {
|
|
println!("{x}")
|
|
}
|
|
*/
|
|
}
|
|
|
|
fn print_array5_v2(a: &[i32; 5]) {
|
|
// x is &i32
|
|
for x in a {
|
|
println!("{x}")
|
|
}
|
|
}
|
|
|
|
fn double_array5(a: &mut [i32; 5]) {
|
|
/*
|
|
* this works
|
|
for i in 0..5 {
|
|
a[i] *= 2;
|
|
}
|
|
*/
|
|
|
|
for x in a {
|
|
*x *= 2;
|
|
}
|
|
}
|