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

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 την υποστηρίζει ρητά.

Επόμενο