Basics angefangen
parent
183c9c0426
commit
951dbce120
|
|
@ -1,3 +1,4 @@
|
||||||
fn main() {
|
fn main() {
|
||||||
println!("Hello World!");
|
// Kommentare wie gewohnt mit 2 Slashes
|
||||||
|
println!("Hello World!"); // Dies ist ein Makro für die Konsolenausgabe
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
fn main() {
|
||||||
|
let x = 42; // unveränderbar (final in Java)
|
||||||
|
//x += 1; // Das würde nicht funktionieren
|
||||||
|
println!("{x}");
|
||||||
|
|
||||||
|
let mut y = 24; // mut == mutable (also veränderbar)
|
||||||
|
println!("{y}");
|
||||||
|
|
||||||
|
y += 1; // Das funktioniert
|
||||||
|
println!("{y}");
|
||||||
|
|
||||||
|
let x = 187; // Shadowing: es wird eine neue Viariable mit dem selben Namen erstellt, dieser überschattet die vorherige Variable
|
||||||
|
println!("{x}");
|
||||||
|
|
||||||
|
{
|
||||||
|
// Hier sind wir in einem Block
|
||||||
|
// Wenn hier Variablen deklariert werden, sind sie außerhalb des Blocks nicht mehr verfügbar
|
||||||
|
|
||||||
|
let x = 1234; // Shadowing geht zwar auch ohne Block, aber das verdeutlicht, dass man in Blöcken Variablen deklarieren kann, die gleich heißen wie die von außerhalb
|
||||||
|
println!("{x}");
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("{x}"); // Der Wert ist wieder der Alte
|
||||||
|
|
||||||
|
let x = "Typwechsel ist erlaubt!";
|
||||||
|
println!("{x}");
|
||||||
|
|
||||||
|
const KONSTANTE: i32 = 42; // Gar nicht mehr veränderbar (auch nicht durch Shadowing)
|
||||||
|
println!("{KONSTANTE}");
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
fn main() {
|
||||||
|
// Ganzzahlen
|
||||||
|
let integer: i32 = -420; // Es gibt Integer mit unterschiedlicher Bitlänge (8, 16, 32, 64, 128 oder architekturspezifisch (isize))
|
||||||
|
println!("{integer}");
|
||||||
|
let unsigned: u32 = 420; // Unsigned Integer mit unterschiedlicher Bitlänge (8, 16, 32, 64, 128 oder architekturspezifisch (usize))
|
||||||
|
println!("{unsigned}");
|
||||||
|
|
||||||
|
// Integer Literale geben unterschiedliche Zahlensysteme an
|
||||||
|
let integer = 98_765; // Dezimal (Unterstriche als Trennzeichen erlaubt)
|
||||||
|
println!("{integer}");
|
||||||
|
|
||||||
|
let hexadezimal = 0xff;
|
||||||
|
println!("{hexadezimal}");
|
||||||
|
|
||||||
|
let oktal = 0o77;
|
||||||
|
println!("{oktal}");
|
||||||
|
|
||||||
|
let binaer = 0b1010_1010;
|
||||||
|
println!("{binaer}");
|
||||||
|
|
||||||
|
let byte = b'A';
|
||||||
|
println!("{byte}");
|
||||||
|
|
||||||
|
// Gleitkommazahlen
|
||||||
|
let einfach: f32 = 3.14; // Einfache Genauigkeit (wie float in Java)
|
||||||
|
println!("{einfach}");
|
||||||
|
|
||||||
|
let doppelt: f64 = 3.14159265359; // Doppelte Genauigkeit (wie double in Java) -- Standardwert
|
||||||
|
println!("{doppelt}");
|
||||||
|
|
||||||
|
let boolean: bool = true; // Boolean (true oder false)
|
||||||
|
println!("{boolean}");
|
||||||
|
println!("{}", !boolean); // Wert negieren
|
||||||
|
|
||||||
|
let zeichen: char = 'a'; // Character
|
||||||
|
println!("{zeichen}");
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
fn main() {
|
||||||
|
let string: &str = "Das ist ein String!";
|
||||||
|
println!("{string}");
|
||||||
|
|
||||||
|
let tupel = (42, "Das hier ist ein Tupel!", true);
|
||||||
|
let (a, b, c) = tupel;
|
||||||
|
println!("{}, {}, {}", a, b, c);
|
||||||
|
|
||||||
|
let array: [&str; 5] = ["Das", " ist", " ein", " Array", "!"]; // Es wird explizit gesagt, welche Größe es hat
|
||||||
|
println!("{:?}", array); // Das wird auch später erklärt
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue