mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-01-17 13:38:38 +01:00
[rust/el-gr] Small fixes to Rust el-gr (#4060)
* Small fixes to Rust in el-gr spelling mistakes, reworded some descriptions * Update rust-gr.html.markdown * small correction
This commit is contained in:
parent
0d637dade2
commit
4daa2014c2
@ -62,7 +62,7 @@ fn add2(x: i32, y: i32) -> i32 {
|
|||||||
fn main() {
|
fn main() {
|
||||||
// Αριθμοί //
|
// Αριθμοί //
|
||||||
|
|
||||||
// Αμετάβλητη σύνδεση
|
// Αμετάβλητη δέσμευση (η τιμή που αντιστοιχεί στο όνομα "x" δεν μπορεί να αλλάξει)
|
||||||
let x: i32 = 1;
|
let x: i32 = 1;
|
||||||
|
|
||||||
// Καταλήξεις integer/float
|
// Καταλήξεις integer/float
|
||||||
@ -80,7 +80,8 @@ fn main() {
|
|||||||
// Πράξεις
|
// Πράξεις
|
||||||
let sum = x + y + 13;
|
let sum = x + y + 13;
|
||||||
|
|
||||||
// Μη-αμετάβλητη αξία (με την έννοια ότι μπορεί να αλλάξει)
|
// Μεταβλητές (με την έννοια των προστακτικών γλωσσών προγραμματισμού).
|
||||||
|
// Στη Rust η αμετάβλητη δέσμευση είναι στάνταρ. Το mut δηλώνει μεταβλητότητα.
|
||||||
let mut mutable = 1;
|
let mut mutable = 1;
|
||||||
mutable = 4;
|
mutable = 4;
|
||||||
mutable += 2;
|
mutable += 2;
|
||||||
@ -96,7 +97,7 @@ fn main() {
|
|||||||
// A `String` – a heap-allocated string
|
// A `String` – a heap-allocated string
|
||||||
let s: String = "καλημέρα κόσμε".to_string();
|
let s: String = "καλημέρα κόσμε".to_string();
|
||||||
|
|
||||||
// Ένα κομμάτι αλφαριθμητικού (string slice) – μια μη-μεταβλητή οπτική γωνία προς ένα άλλο αλφαριθμητικό
|
// Ένα κομμάτι αλφαριθμητικού (string slice) – μια αμετάβλητη οπτική γωνία προς ένα άλλο αλφαριθμητικό
|
||||||
// Το αλφαριθμητικό μπορεί να είναι στατικό όπως τα σταθερά αλφαριθμητικά, ή να περιλαμβάνεται σε ένα άλλο,
|
// Το αλφαριθμητικό μπορεί να είναι στατικό όπως τα σταθερά αλφαριθμητικά, ή να περιλαμβάνεται σε ένα άλλο,
|
||||||
// δυναμικό αντικείμενο (σε αυτή την περίπτωση τη μεταβλητή `s`)
|
// δυναμικό αντικείμενο (σε αυτή την περίπτωση τη μεταβλητή `s`)
|
||||||
let s_slice: &str = &s;
|
let s_slice: &str = &s;
|
||||||
@ -112,7 +113,7 @@ fn main() {
|
|||||||
let mut vector: Vec<i32> = vec![1, 2, 3, 4];
|
let mut vector: Vec<i32> = vec![1, 2, 3, 4];
|
||||||
vector.push(5);
|
vector.push(5);
|
||||||
|
|
||||||
// Ένα κομμάτι – μια μη-μεταβλητή οπτική γωνία προς ένα διάνυσμα ή πίνακα
|
// Ένα κομμάτι – μια αμετάβλητη οπτική γωνία προς ένα διάνυσμα ή πίνακα
|
||||||
// Είναι παρόμοιο με το κομμάτι αλφαριθμητικού που είδαμε προηγουμένως
|
// Είναι παρόμοιο με το κομμάτι αλφαριθμητικού που είδαμε προηγουμένως
|
||||||
let slice: &[i32] = &vector;
|
let slice: &[i32] = &vector;
|
||||||
|
|
||||||
@ -121,10 +122,10 @@ fn main() {
|
|||||||
|
|
||||||
// Tuples (πλειάδες) //
|
// Tuples (πλειάδες) //
|
||||||
|
|
||||||
// Ένα tuple είναι μια σταθερού μεγέθους σειρά από αξίες (πιθανά διαφορετικού τύπου)
|
// Ένα tuple είναι μια σταθερού μεγέθους σειρά από τιμές (πιθανά διαφορετικού τύπου)
|
||||||
let x: (i32, &str, f64) = (1, "καλημέρα", 3.4);
|
let x: (i32, &str, f64) = (1, "καλημέρα", 3.4);
|
||||||
|
|
||||||
// Μπορούμε να χρησιμοποιήσουμε το `let` και ένα tuple για να δώσουμε πολλές αξίες σε πολλές μεταβλητές ταυτόχρονα
|
// Μπορούμε να χρησιμοποιήσουμε το `let` και ένα tuple για να δώσουμε πολλές τιμές σε πολλές μεταβλητές ταυτόχρονα
|
||||||
// (destructuring `let`)
|
// (destructuring `let`)
|
||||||
let (a, b, c) = x;
|
let (a, b, c) = x;
|
||||||
println!("{} {} {}", a, b, c); // 1 καλημέρα 3.4
|
println!("{} {} {}", a, b, c); // 1 καλημέρα 3.4
|
||||||
@ -185,7 +186,7 @@ fn main() {
|
|||||||
fn bar(&self) -> &T { // Δανειζόμαστε το self
|
fn bar(&self) -> &T { // Δανειζόμαστε το self
|
||||||
&self.bar
|
&self.bar
|
||||||
}
|
}
|
||||||
fn bar_mut(&mut self) -> &mut T { // Δανειζόμαστε το self ως μη-αμετάβλητη αξία
|
fn bar_mut(&mut self) -> &mut T { // Γίνεται "μεταβλητός δανεισμός" του self (μπορούμε να το τροποποιήσουμε)
|
||||||
&mut self.bar
|
&mut self.bar
|
||||||
}
|
}
|
||||||
fn into_bar(self) -> T { // Εδώ το self καταναλώνεται
|
fn into_bar(self) -> T { // Εδώ το self καταναλώνεται
|
||||||
@ -240,7 +241,7 @@ fn main() {
|
|||||||
// 4. Έλεγχος ροής //
|
// 4. Έλεγχος ροής //
|
||||||
/////////////////////
|
/////////////////////
|
||||||
|
|
||||||
// Βρόγχοι `for`
|
// Βρόχοι `for`
|
||||||
let array = [1, 2, 3];
|
let array = [1, 2, 3];
|
||||||
for i in array {
|
for i in array {
|
||||||
println!("{}", i);
|
println!("{}", i);
|
||||||
@ -253,7 +254,7 @@ fn main() {
|
|||||||
println!("");
|
println!("");
|
||||||
// Τυπώνει `0 1 2 3 4 5 6 7 8 9 `
|
// Τυπώνει `0 1 2 3 4 5 6 7 8 9 `
|
||||||
|
|
||||||
// Βρόγχοι `if`
|
// `if` (υπό συνθήκη διακλάδωση)
|
||||||
if 1 == 1 {
|
if 1 == 1 {
|
||||||
println!("Τα μαθηματικά δουλεύουν!");
|
println!("Τα μαθηματικά δουλεύουν!");
|
||||||
} else {
|
} else {
|
||||||
@ -267,17 +268,17 @@ fn main() {
|
|||||||
"κακό"
|
"κακό"
|
||||||
};
|
};
|
||||||
|
|
||||||
// Βρόγχοι `while`
|
// Βρόχοι `while`
|
||||||
while 1 == 1 {
|
while 1 == 1 {
|
||||||
println!("Το σύμπαν λειτουργεί κανονικά.");
|
println!("Το σύμπαν λειτουργεί κανονικά.");
|
||||||
// Μπορούμε να βγούμε από το βρόγχο με το `break`
|
// Μπορούμε να βγούμε από το βρόχο με το `break`
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ατέρμονος βρόχγος
|
// Ατέρμονος βρόχος
|
||||||
loop {
|
loop {
|
||||||
println!("Καλημέρα!");
|
println!("Καλημέρα!");
|
||||||
// Μπορούμε να βγούμε από το βρόγχο με το `break`
|
// Μπορούμε να βγούμε από το βρόχο με το `break`
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,11 +295,11 @@ fn main() {
|
|||||||
*now_its_mine += 2;
|
*now_its_mine += 2;
|
||||||
|
|
||||||
println!("{}", now_its_mine); // 7
|
println!("{}", now_its_mine); // 7
|
||||||
// println!("{}", mine); // Αυτό παράγει λάθος κατά τη μεταγλώττιση διότι τώρα ο δείκτης ανοίκει στο `now_its_mine`
|
// println!("{}", mine); // Αυτό παράγει λάθος κατά τη μεταγλώττιση διότι τώρα ο δείκτης ανήκει στο `now_its_mine`
|
||||||
|
|
||||||
// Reference (αναφορά) – ένας αμετάβλητος δείκτης που αναφέρεται σε άλλα δεδομένα
|
// Reference (αναφορά) – ένας αμετάβλητος δείκτης που αναφέρεται σε άλλα δεδομένα
|
||||||
// Όταν μια αναφορά δίνεται σε μια αξία, λέμε πως η αξία έχει "δανειστεί".
|
// Όταν μια αναφορά δίνεται σε μια τιμή, λέμε πως η τιμή έχει "δανειστεί".
|
||||||
// Όταν μια αξία δανείζεται αμετάβλητα, δεν μπορεί να είναι mutated (να μεταβληθεί) ή να μετακινηθεί.
|
// Όταν μια τιμή δανείζεται αμετάβλητα, δεν μπορεί να είναι mutated (να μεταβληθεί) ή να μετακινηθεί.
|
||||||
// Ένας "δανεισμός" παραμένει ενεργός μέχρι την τελευταία χρήση της μεταβλητής που δανείζεται.
|
// Ένας "δανεισμός" παραμένει ενεργός μέχρι την τελευταία χρήση της μεταβλητής που δανείζεται.
|
||||||
let mut var = 4;
|
let mut var = 4;
|
||||||
var = 3;
|
var = 3;
|
||||||
@ -313,13 +314,13 @@ fn main() {
|
|||||||
var = 2; // Η `ref_var` δεν χρησιμοποιείται από εδώ και στο εξής, άρα ο "δανεισμός" τελειώνει
|
var = 2; // Η `ref_var` δεν χρησιμοποιείται από εδώ και στο εξής, άρα ο "δανεισμός" τελειώνει
|
||||||
|
|
||||||
// Μεταβλητή αναφορά
|
// Μεταβλητή αναφορά
|
||||||
// Όσο μια αξία είναι μεταβλητά δανεισμένη, παραμένει τελείως απροσβάσιμη.
|
// Όσο μια τιμή είναι μεταβλητά δανεισμένη, παραμένει τελείως απροσβάσιμη.
|
||||||
let mut var2 = 4;
|
let mut var2 = 4;
|
||||||
let ref_var2: &mut i32 = &mut var2;
|
let ref_var2: &mut i32 = &mut var2;
|
||||||
*ref_var2 += 2; // Ο αστερίσκος (*) χρησιμοποιείται ως δείκτης προς την μεταβλητά δανεισμένη `var2`
|
*ref_var2 += 2; // Ο αστερίσκος (*) χρησιμοποιείται ως δείκτης προς την μεταβλητά δανεισμένη `var2`
|
||||||
|
|
||||||
println!("{}", *ref_var2); // 6 , // Αν είχαμε `var2` εδώ θα προκαλούνταν λάθος μεταγλώττισης.
|
println!("{}", *ref_var2); // 6 , // Αν είχαμε `var2` εδώ θα προκαλούνταν λάθος μεταγλώττισης.
|
||||||
// O τύπος της `ref_var2` είναι &mut i32, άρα αποθηκεύει μια αναφορά προς μια αξία i32, όχι την αξία την ίδια.
|
// O τύπος της `ref_var2` είναι &mut i32, άρα αποθηκεύει μια αναφορά προς μια τιμή i32, όχι την τιμή την ίδια.
|
||||||
// var2 = 2; // Λάθος μεταγλώττισης, γιατί η `var2` είναι δανεισμένη.
|
// var2 = 2; // Λάθος μεταγλώττισης, γιατί η `var2` είναι δανεισμένη.
|
||||||
ref_var2; // Εντολή no-op (τίποτα δεν εκτελείται από τον επεξεργαστή), η οποία όμως μετράει ως χρήση και κρατά τον
|
ref_var2; // Εντολή no-op (τίποτα δεν εκτελείται από τον επεξεργαστή), η οποία όμως μετράει ως χρήση και κρατά τον
|
||||||
// "δανεισμό" ενεργό
|
// "δανεισμό" ενεργό
|
||||||
|
Loading…
x
Reference in New Issue
Block a user