Η μεταφραστική κάλυψη είναι μερική. Για την πλήρη τεχνική αναφορά συμβουλευτείτε την αγγλική πηγή. Δείτε την αγγλική έκδοση →

Μονάδες και Αβεβαιότητα

Έλεγχος μονάδων κατά τη μεταγλώττιση και διάδοση αβεβαιότητας GUM στο Sounio

Μονάδες και Αβεβαιότητα

Το Sounio έχει ενσωματωμένο έλεγχο μονάδων; Ναι. Οι φυσικές διαστάσεις ελέγχονται κατά τη μεταγλώττιση.

Πώς να διαδώσω την αβεβαιότητα μέτρησης; Χρησιμοποιήστε Knowledge<T> με διάδοση GUM (Guide to the Expression of Uncertainty in Measurement).

Διαστασιακή ανάλυση — έλεγχος μονάδων κατά τη μεταγλώττιση

Το Sounio ελέγχει τις φυσικές διαστάσεις σε επίπεδο τύπου. Η πρόσθεση μέτρων με δευτερόλεπτα είναι σφάλμα μεταγλώττισης.

fn main() with IO {
    let distance: m = 100.0
    let time: s = 9.58
    
    // Αυτό μεταγλωττίζεται: m / s = m/s
    let velocity = distance / time
    println(velocity)  // 10.438413
    
    // Αυτό είναι ΣΦΑΛΜΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ:
    // let wrong = distance + time  
    // error[E041]: unit mismatch
}

Επαληθευμένο παράδειγμα

Το πλήρες παράδειγμα διαστασιακής ασφάλειας βρίσκεται στο examples/showcase/type_safe_units.sio.

Διάδοση αβεβαιότητας — Knowledge<T> και GUM

Το Knowledge<T> αντιπροσωπεύει μια μετρημένη τιμή με την τυπική της αβεβαιότητα. Η αβεβαιότητα διαδίδεται μέσω των υπολογισμών ακολουθώντας το Guide to the Expression of Uncertainty in Measurement (JCGM 100:2008).

Επαληθευμένο παράδειγμα

Το πλήρες παράδειγμα διάδοσης GUM βρίσκεται στο examples/science/uncertainty_propagation.sio.

Κατάσταση και περιορισμοί

  • Μονάδες: Ο έλεγχος κατά τη μεταγλώττιση λειτουργεί.

  • Αβεβαιότητα (Knowledge<T>): Η διάδοση GUM για f64, bool και struct types είναι υλοποιημένη.

  • Μη υλοποιημένο: Knowledge<f128> (KL-15).

  • Αυτό είναι λογισμικό pre-1.0. Δείτε KNOWN_LIMITATIONS.md.