Localized V2 rewrite for this language is in progress. Showing English-first content for now.

Μεταβλητές και Τύποι

Δεσμεύσεις (let/var), σημειώσεις τύπων και οι βασικοί built-in τύποι.

Μεταβλητές και Τύποι

Το Sounio είναι στατικά τυποποιημένο, με εξαγωγή τύπων (type inference) για τις περισσότερες τοπικές δεσμεύσεις.

Δήλωση Μεταβλητών

Αμετάβλητες Μεταβλητές (let)

Από προεπιλογή, οι μεταβλητές είναι αμετάβλητες:

let x = 42          // Type inferred as i32
let name = "Alice"  // Type inferred as string
let pi = 3.14159    // Type inferred as f64

Μεταβλητές με Mutability (var)

Χρησιμοποιήστε var για μεταβλητές με mutability:

var counter = 0
counter = counter + 1  // OK

let fixed = 10
fixed = 20  // Error: cannot assign to immutable variable

Σημειώσεις Τύπου

Μπορείτε να δηλώσετε τύπους ρητά:

let x: i32 = 42
let ratio: f64 = 0.5
let flag: bool = true
let message: string = "Hello"

Βασικοί Τύποι

ΤύποςΠεριγραφήΠαράδειγμα
i8, i16, i32, i64Ακέραιοι με πρόσημοlet x: i32 = -42
u8, u16, u32, u64Ακέραιοι χωρίς πρόσημοlet y: u32 = 42
f32, f64Αριθμοί κινητής υποδιαστολήςlet pi: f64 = 3.14
boolBooleanlet flag: bool = true
charUnicode χαρακτήραςlet c: char = 'A'
string / StringΚείμενο (string)let s = "hello"
strBorrowed string slicelet s: &str = "hello"

Σύνθετοι Τύποι

Πλειάδες (Tuples)

let point = (10, 20)
let first = point.0  // 10
let second = point.1 // 20

Πίνακες (Arrays)

let numbers: [i32; 5] = [1, 2, 3, 4, 5]
let first = numbers[0]  // 1

Διανύσματα (Vec<T>)

let items: Vec<i32> = [1, 2, 3, 4]
for x in items {
    // ...
}

Εξαγωγή Τύπων (Type Inference)

Το Sounio εξάγει τύπους από το context:

let values = [1, 2, 3]  // Array literal
let vec_values: Vec<i32> = values

Σημείωση spec: τα units γίνονται parse (π.χ. unit kg; unit g = 0.001 * kg; unit mg = 0.001 * g;), αλλά ο πλήρης unit checker μπορεί να είναι ενεργός μόνο σε ορισμένα modes/flags.

Επιστημικοί Τύποι (Knowledge<T>)

Για τιμές με αβεβαιότητα:

let k = Knowledge { value: 42.0 }
let x: f64 = k.unwrap("accepted for demo")

Δείτε Knowledge<T> για περισσότερα.

Τι Ακολουθεί;