diff options
-rw-r--r-- | el-gr/rust-gr.html.markdown | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/el-gr/rust-gr.html.markdown b/el-gr/rust-gr.html.markdown index 4da75b1d..d28e3c2c 100644 --- a/el-gr/rust-gr.html.markdown +++ b/el-gr/rust-gr.html.markdown @@ -62,7 +62,7 @@ fn add2(x: i32, y: i32) -> i32 { fn main() { // Αριθμοί // - // Αμετάβλητη σύνδεση + // Αμετάβλητη δέσμευση (η τιμή που αντιστοιχεί στο όνομα "x" δεν μπορεί να αλλάξει) let x: i32 = 1; // Καταλήξεις integer/float @@ -80,7 +80,8 @@ fn main() { // Πράξεις let sum = x + y + 13; - // Μη-αμετάβλητη αξία (με την έννοια ότι μπορεί να αλλάξει) + // Μεταβλητές (με την έννοια των προστακτικών γλωσσών προγραμματισμού). + // Στη Rust η αμετάβλητη δέσμευση είναι στάνταρ. Το mut δηλώνει μεταβλητότητα. let mut mutable = 1; mutable = 4; mutable += 2; @@ -96,7 +97,7 @@ fn main() { // A `String` – a heap-allocated string let s: String = "καλημέρα κόσμε".to_string(); - // Ένα κομμάτι αλφαριθμητικού (string slice) – μια μη-μεταβλητή οπτική γωνία προς ένα άλλο αλφαριθμητικό + // Ένα κομμάτι αλφαριθμητικού (string slice) – μια αμετάβλητη οπτική γωνία προς ένα άλλο αλφαριθμητικό // Το αλφαριθμητικό μπορεί να είναι στατικό όπως τα σταθερά αλφαριθμητικά, ή να περιλαμβάνεται σε ένα άλλο, // δυναμικό αντικείμενο (σε αυτή την περίπτωση τη μεταβλητή `s`) let s_slice: &str = &s; @@ -112,7 +113,7 @@ fn main() { let mut vector: Vec<i32> = vec![1, 2, 3, 4]; vector.push(5); - // Ένα κομμάτι – μια μη-μεταβλητή οπτική γωνία προς ένα διάνυσμα ή πίνακα + // Ένα κομμάτι – μια αμετάβλητη οπτική γωνία προς ένα διάνυσμα ή πίνακα // Είναι παρόμοιο με το κομμάτι αλφαριθμητικού που είδαμε προηγουμένως let slice: &[i32] = &vector; @@ -121,10 +122,10 @@ fn main() { // Tuples (πλειάδες) // - // Ένα tuple είναι μια σταθερού μεγέθους σειρά από αξίες (πιθανά διαφορετικού τύπου) + // Ένα tuple είναι μια σταθερού μεγέθους σειρά από τιμές (πιθανά διαφορετικού τύπου) let x: (i32, &str, f64) = (1, "καλημέρα", 3.4); - // Μπορούμε να χρησιμοποιήσουμε το `let` και ένα tuple για να δώσουμε πολλές αξίες σε πολλές μεταβλητές ταυτόχρονα + // Μπορούμε να χρησιμοποιήσουμε το `let` και ένα tuple για να δώσουμε πολλές τιμές σε πολλές μεταβλητές ταυτόχρονα // (destructuring `let`) let (a, b, c) = x; println!("{} {} {}", a, b, c); // 1 καλημέρα 3.4 @@ -185,7 +186,7 @@ fn main() { fn bar(&self) -> &T { // Δανειζόμαστε το self &self.bar } - fn bar_mut(&mut self) -> &mut T { // Δανειζόμαστε το self ως μη-αμετάβλητη αξία + fn bar_mut(&mut self) -> &mut T { // Γίνεται "μεταβλητός δανεισμός" του self (μπορούμε να το τροποποιήσουμε) &mut self.bar } fn into_bar(self) -> T { // Εδώ το self καταναλώνεται @@ -240,7 +241,7 @@ fn main() { // 4. Έλεγχος ροής // ///////////////////// - // Βρόγχοι `for` + // Βρόχοι `for` let array = [1, 2, 3]; for i in array { println!("{}", i); @@ -253,7 +254,7 @@ fn main() { println!(""); // Τυπώνει `0 1 2 3 4 5 6 7 8 9 ` - // Βρόγχοι `if` + // `if` (υπό συνθήκη διακλάδωση) if 1 == 1 { println!("Τα μαθηματικά δουλεύουν!"); } else { @@ -267,17 +268,17 @@ fn main() { "κακό" }; - // Βρόγχοι `while` + // Βρόχοι `while` while 1 == 1 { println!("Το σύμπαν λειτουργεί κανονικά."); - // Μπορούμε να βγούμε από το βρόγχο με το `break` + // Μπορούμε να βγούμε από το βρόχο με το `break` break } - // Ατέρμονος βρόχγος + // Ατέρμονος βρόχος loop { println!("Καλημέρα!"); - // Μπορούμε να βγούμε από το βρόγχο με το `break` + // Μπορούμε να βγούμε από το βρόχο με το `break` break } @@ -294,11 +295,11 @@ fn main() { *now_its_mine += 2; println!("{}", now_its_mine); // 7 - // println!("{}", mine); // Αυτό παράγει λάθος κατά τη μεταγλώττιση διότι τώρα ο δείκτης ανοίκει στο `now_its_mine` + // println!("{}", mine); // Αυτό παράγει λάθος κατά τη μεταγλώττιση διότι τώρα ο δείκτης ανήκει στο `now_its_mine` // Reference (αναφορά) – ένας αμετάβλητος δείκτης που αναφέρεται σε άλλα δεδομένα - // Όταν μια αναφορά δίνεται σε μια αξία, λέμε πως η αξία έχει "δανειστεί". - // Όταν μια αξία δανείζεται αμετάβλητα, δεν μπορεί να είναι mutated (να μεταβληθεί) ή να μετακινηθεί. + // Όταν μια αναφορά δίνεται σε μια τιμή, λέμε πως η τιμή έχει "δανειστεί". + // Όταν μια τιμή δανείζεται αμετάβλητα, δεν μπορεί να είναι mutated (να μεταβληθεί) ή να μετακινηθεί. // Ένας "δανεισμός" παραμένει ενεργός μέχρι την τελευταία χρήση της μεταβλητής που δανείζεται. let mut var = 4; var = 3; @@ -313,13 +314,13 @@ fn main() { var = 2; // Η `ref_var` δεν χρησιμοποιείται από εδώ και στο εξής, άρα ο "δανεισμός" τελειώνει // Μεταβλητή αναφορά - // Όσο μια αξία είναι μεταβλητά δανεισμένη, παραμένει τελείως απροσβάσιμη. + // Όσο μια τιμή είναι μεταβλητά δανεισμένη, παραμένει τελείως απροσβάσιμη. let mut var2 = 4; let ref_var2: &mut i32 = &mut var2; *ref_var2 += 2; // Ο αστερίσκος (*) χρησιμοποιείται ως δείκτης προς την μεταβλητά δανεισμένη `var2` println!("{}", *ref_var2); // 6 , // Αν είχαμε `var2` εδώ θα προκαλούνταν λάθος μεταγλώττισης. - // O τύπος της `ref_var2` είναι &mut i32, άρα αποθηκεύει μια αναφορά προς μια αξία i32, όχι την αξία την ίδια. + // O τύπος της `ref_var2` είναι &mut i32, άρα αποθηκεύει μια αναφορά προς μια τιμή i32, όχι την τιμή την ίδια. // var2 = 2; // Λάθος μεταγλώττισης, γιατί η `var2` είναι δανεισμένη. ref_var2; // Εντολή no-op (τίποτα δεν εκτελείται από τον επεξεργαστή), η οποία όμως μετράει ως χρήση και κρατά τον // "δανεισμό" ενεργό |