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

Μονάδες Μέτρησης (Units)

Ορίστε και παρακολουθήστε μονάδες για να μειώσετε σφάλματα διαστασιακής ανάλυσης.

Μονάδες Μέτρησης (Units)

Το Sounio έχει ειδική σύνταξη για μονάδες μέτρησης, ώστε τα προγράμματα να κουβαλούν διαστασιακή σημασία μέσω του type system.

Δηλώσεις Μονάδων

Οι μονάδες δηλώνονται σε top-level και αυτή τη στιγμή απαιτούν ; στο τέλος:

unit kg;
unit g = 0.001 * kg;
unit mg = 0.001 * g;

Οι μονάδες μπορούν να συνδυαστούν με πολλαπλασιασμό, διαίρεση και εκθέτες:

unit m;
unit s;
unit N = kg * m / s^2;

Quantities (Αριθμός + Μονάδα)

Ο compiler υποστηρίζει μια μορφή quantity type:

Quantity[f64, mg]
Quantity[f64, kg*m/s^2]

Για να κάνετε ascribe unit type σε numeric literal, χρησιμοποιήστε @:

unit kg;
unit g = 0.001 * kg;
unit mg = 0.001 * g;

fn main() {
    let dose: Quantity[f64, mg] = 500.0@Quantity[f64, mg]
    let half = 250.0@Quantity[f64, mg]
    let total = dose + half
}

Spec vs Υλοποίηση

Ο στόχος είναι compile-time unit checking και conversions που αποτρέπουν mismatches (π.χ. δεν μπορείτε να προσθέσετε μήκος με μάζα).

Σήμερα, οι μονάδες και τα quantity types γίνονται parse και είναι αναπαραστάσιμα, αλλά ο πλήρης mismatch checker μπορεί να μην εφαρμόζεται σε κάθε compiler mode. Αντιμετωπίστε τα units ως correctness annotation μέχρι να είναι πλήρως integrated.