beispiel-programme_in_rust
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| beispiel-programme_in_rust [2021-04-17 23:23:50] – [Argumente] manfred | beispiel-programme_in_rust [2022-04-15 22:00:02] (aktuell) – [was ich noch mit Rust lernen möchte/muß] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Beispiel-Programme in Rust ====== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | ===== meine Kode-Beispiele ===== | ||
| + | |||
| + | |||
| + | ==== Hallo Welt ==== | ||
| + | |||
| + | <file rust Hallo_Welt.rs> | ||
| + | // Hallo Welt | ||
| + | fn main() | ||
| + | { | ||
| + | println!(" | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc Hallo_Welt.rs | ||
| + | > ls -lha | ||
| + | total 606 | ||
| + | drwxr-xr-x | ||
| + | drwx------ | ||
| + | -rwxr-xr-x | ||
| + | -rw-r--r-- | ||
| + | | ||
| + | > ./ | ||
| + | Hallo, Welt! | ||
| + | |||
| + | |||
| + | ==== hoch zählen ==== | ||
| + | |||
| + | <file rust hoch_zaehlen.rs> | ||
| + | // hoch zählen | ||
| + | // | ||
| + | // https:// | ||
| + | // | ||
| + | |||
| + | fn main() { | ||
| + | for x in 0..10 { | ||
| + | println!(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc hoch_zaehlen.rs | ||
| + | > ./ | ||
| + | 0 | ||
| + | 1 | ||
| + | 2 | ||
| + | 3 | ||
| + | 4 | ||
| + | 5 | ||
| + | 6 | ||
| + | 7 | ||
| + | 8 | ||
| + | 9 | ||
| + | |||
| + | |||
| + | ==== Variable ==== | ||
| + | |||
| + | <file rust Variable.rs> | ||
| + | // Variable | ||
| + | // | ||
| + | // https:// | ||
| + | // | ||
| + | |||
| + | fn main() { | ||
| + | // damit " | ||
| + | let mut a = 1; | ||
| + | println!(" | ||
| + | a = 2; | ||
| + | println!(" | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc Variable.rs | ||
| + | > ./Variable | ||
| + | 1 | ||
| + | 2 | ||
| + | |||
| + | |||
| + | ==== if ==== | ||
| + | |||
| + | <file rust if.rs> | ||
| + | // if | ||
| + | // | ||
| + | // https:// | ||
| + | // | ||
| + | |||
| + | fn main() { | ||
| + | let x = 5; | ||
| + | |||
| + | if x == 5 { | ||
| + | println!(" | ||
| + | } else if x == 6 { | ||
| + | println!(" | ||
| + | } else { | ||
| + | println!(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc if.rs | ||
| + | > ./if | ||
| + | x is five! | ||
| + | |||
| + | |||
| + | ==== for ==== | ||
| + | |||
| + | <file rust for-Schleife.rs> | ||
| + | use std::env; | ||
| + | |||
| + | fn main() { | ||
| + | let vector: Vec< | ||
| + | |||
| + | let l = vector.len(); | ||
| + | println!(" | ||
| + | |||
| + | for i in 0..l { | ||
| + | println!(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== while ==== | ||
| + | |||
| + | <file rust while.rs> | ||
| + | // while | ||
| + | // | ||
| + | // https:// | ||
| + | // | ||
| + | |||
| + | fn main() | ||
| + | { | ||
| + | |||
| + | let mut x = 5; // mut x: u32 | ||
| + | let mut done = false; // mut done: bool | ||
| + | |||
| + | while !done { | ||
| + | x += x - 3; | ||
| + | |||
| + | println!(" | ||
| + | |||
| + | if x % 5 == 0 { | ||
| + | done = true; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc while.rs | ||
| + | > ./while | ||
| + | 7 | ||
| + | 11 | ||
| + | 19 | ||
| + | 35 | ||
| + | |||
| + | |||
| + | ==== Datei lesen ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <file rust datei_lesen.rs> | ||
| + | use std:: | ||
| + | use std:: | ||
| + | use std:: | ||
| + | |||
| + | fn read_file(path: | ||
| + | let mut file = File:: | ||
| + | let mut contents = String:: | ||
| + | file.read_to_string(& | ||
| + | println!(" | ||
| + | } | ||
| + | |||
| + | fn main() { | ||
| + | let path = & | ||
| + | println!(" | ||
| + | println!(" | ||
| + | println!(" | ||
| + | read_file(path); | ||
| + | println!("################################################################################" | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Argumente ==== | ||
| + | |||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | === Argumente: Beispiel 1 === | ||
| + | |||
| + | <file rust argv_0.rs> | ||
| + | // | ||
| + | // Argumente: Beispiel 1 | ||
| + | // | ||
| + | // An easy way to deal with the result of args is to convert it to a Vec: | ||
| + | |||
| + | use std::env; | ||
| + | |||
| + | fn main() { | ||
| + | let args: Vec< | ||
| + | if args.len() > 1 { | ||
| + | println!(" | ||
| + | println!(" | ||
| + | println!(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc argv_0.rs | ||
| + | > ./argv_0 1 2 3 4 A B C d | ||
| + | mein Aufruf lautet ./argv_0 | ||
| + | das erste Argumente lautet 1 | ||
| + | das zweite Argumente lautet 2 | ||
| + | |||
| + | |||
| + | === Argumente: Beispiel 2 === | ||
| + | |||
| + | <file rust argv_1.rs> | ||
| + | // | ||
| + | // Argumente: Beispiel 2 | ||
| + | // | ||
| + | // You can use the whole standard iterator toolbox to work with these arguments. | ||
| + | // For example, to retrieve only the first argument: | ||
| + | |||
| + | use std::env; | ||
| + | |||
| + | fn main() { | ||
| + | if let Some(arg0) = env:: | ||
| + | println!(" | ||
| + | } | ||
| + | println!(" | ||
| + | if let Some(arg1) = env:: | ||
| + | println!(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc argv_1.rs | ||
| + | > ./argv_1 1 2 3 4 A B C d | ||
| + | Argument 0 ./argv_1 | ||
| + | -------------------------------------------------------------------------------- | ||
| + | Argument 1 1 | ||
| + | |||
| + | |||
| + | === Argumente: Beispiel 3 === | ||
| + | |||
| + | <file rust argv_alle_0.rs> | ||
| + | // | ||
| + | // Argumente: Beispiel 3 | ||
| + | // | ||
| + | |||
| + | use std::env; | ||
| + | |||
| + | fn main() { | ||
| + | let args: Vec< | ||
| + | |||
| + | if args.len() > 1 { | ||
| + | let p = args.len(); // mut x: u32 | ||
| + | let i = 1; | ||
| + | |||
| + | // | ||
| + | |||
| + | for x in i..p { | ||
| + | println!(" | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | > rustc argv_alle_0.rs | ||
| + | > ./ | ||
| + | das 1-te Argumente lautet 1 | ||
| + | das 2-te Argumente lautet 2 | ||
| + | das 3-te Argumente lautet 3 | ||
| + | das 4-te Argumente lautet 4 | ||
| + | das 5-te Argumente lautet A | ||
| + | das 6-te Argumente lautet B | ||
| + | das 7-te Argumente lautet C | ||
| + | das 8-te Argumente lautet d | ||
| + | |||
| + | |||
| + | ==== Read from stdin ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | fn get_input() -> String { | ||
| + | let mut buffer = String:: | ||
| + | std:: | ||
| + | buffer | ||
| + | } | ||
| + | | ||
| + | let n = get_input().trim().parse::< | ||
| + | |||
| + | |||
| + | ==== Stdio ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | |||
| + | ===== was ich noch mit Rust lernen möchte/ | ||
| + | |||
| + | FIXME | ||
| + | |||
| + | * Dateien-/ | ||
| + | * öffnen | ||
| + | * anlegen | ||
| + | * überschreiben | ||
| + | * löschen | ||
| + | * Verzweigungen | ||
| + | * if-then-else | ||
| + | * Schleifen | ||
| + | * while | ||
| + | * for (Zählschleife) | ||
| + | * Argumente/ | ||
| + | * arbeiten mit Arrays | ||
| + | * eigene Funktionen erstellen | ||
| + | |||
