// use std::io::{self, Write}; #![allow(dead_code)] #![allow(unused)] mod errors; mod option; use errors::nov7; use option::okt31; #[derive(Debug)] struct Kreis { r: f32, name: String, } #[derive(Debug)] enum Farbe { Rot, Gruen, Blau, } fn main() { // okt24(); // okt31(); let r = nov7(); // println!("r = {r}"); } fn okt24() { let a: [i32; 4] = [4, 3, 9, 1]; let mut i: usize = 0; // for i in a { ... } while i < 4 { println!("{}", a[i]); i += 1; } let b = a; println!("{b:?}"); let k = Kreis { r: 1.0, name: String::from("Kreis 1"), }; println!("{k:?}"); println!("{:?}", Farbe::Rot); let mut m = k; // let _b = &m; // _b borgt sich m // println!("{k:?}"); println!("{m:?}"); m = f1(m); println!("<2> {m:?}"); f2(&mut m); println!("<5> {m:?}"); let r1 = &mut m; r1.r = 3.0; println!("<6> {r1:?}"); /* let mut r2 = &mut m; r2.r = 4.0; println!("<7> {r2:?}"); println!("<8> {r1:?} {r2:?}"); */ let x = f3(); println!("<3> {x}"); // f4(); /* geht nicht */ } fn f1(a: Kreis) -> Kreis { println!("<1> {a:?}"); a } fn f2(p: &mut Kreis) { p.r = 2.0; println!("<4> {p:?}"); } fn f3() -> i32 { if false { 14 } else { 23 } } /* -- geht nicht -- fn f4() -> &'static Kreis { let k = Kreis { r: 5.0, name = "Hallo".into() }; &k } */