Custom Effects
Ορίστε τα δικά σας effects και propagates τα μέσω υπογραφών συναρτήσεων.
Custom Effects
Το Sounio σας επιτρέπει να δηλώσετε δικά σας effects για να μοντελοποιήσετε domain-specific side effects.
Δήλωση Effect
Ένα effect είναι ένα named σύνολο operations:
effect Fail {
fn fail(msg: string) -> !
}
Χρήση Effect
Καλέστε effect operations όπως κανονικές συναρτήσεις και δηλώστε το effect στην υπογραφή:
fn might_fail() with Fail {
Fail.fail("something went wrong")
}
Propagating Requirements
Οι callers πρέπει επίσης να δηλώσουν το effect:
fn main() with Fail {
might_fail()
}
Αν το ξεχάσετε, ο compiler αναφέρει σφάλμα:
fn main() {
might_fail() // ERROR: Fail effect not declared / handled
}
Spec Note: Effect Handlers
Ο σχεδιασμός της γλώσσας περιλαμβάνει algebraic effect handlers (resumption, interpretation κ.λπ.). Αν δείτε handle / resume σύνταξη σε παλιότερα docs, αντιμετωπίστε την ως spec-level εκτός αν ο τρέχων compiler mode την υποστηρίζει ρητά.