fn main() { // Dieser String ist ein String Slice, welcher eine unveränderliche Referenz auf einen bestehenden String ist println!("Strings:\n-----"); let string: &str = "Das ist ein String."; println!("{string}"); // Ein im Heap allokierter, veränderlicher und besitzender String, mehr dazu später let string = String::from("Das ist auch ein String."); println!("{string}"); println!("\nTupel:\n-----"); let tupel = (42, "Das hier ist ein Tupel.", true); let (a, b, c) = tupel; println!("{}, {}, {}", a, b, c); println!("\nArrays und Slices:\n-----"); let array: [&str; 5] = ["Das", " ist", " ein", " Array", "."]; // Es wird explizit geschrieben, welche Größe es hat println!("{:?}", array); let array = [1, 2, 3, 4, 5, 6]; // Größe wird dynamisch bestimmt println!("{:?}", array); let element = array[0]; // Man kann die Elemente wie gewohnt ansprechen println!("{}", element); println!("{}", array.len()); // Länge kann ausgegeben werden let ganzer_slice = &array; // Ein Slice, der auf das angegebene Array zeigt let teil_slice = &array[1..4]; // Ein Slice, der nur auf ein bestimmten Teil des Arrays zeigt println!("{:?}", ganzer_slice); println!("{:?}", teil_slice); println!("\nVektoren:\n-----"); let mut vektor = vec![1, 2, 3]; // Ein Vektor, dessen Einträge dynamisch verringert oder vergößert werden kann println!("{:?}", vektor); // Einige Methoden, die man auf Vektoren anwenden kann vektor.push(4); println!("{:?}", vektor); vektor.insert(2, 20); // (index, wert) println!("{:?}", vektor); vektor.extend(array); println!("{:?}", vektor); vektor.remove(2); println!("{:?}", vektor); vektor.pop(); println!("{:?}", vektor); vektor.clear(); println!("{:?}", vektor); }