Δυναμική έναντι στατικής αποστολής (dispatch)
Οι μέθοδοι εκτελούνται με δύο τρόπους:
- στατική αποστολή (static dispatch) - Όταν ο τύπος του στιγμιοτύπου είναι γνωστός, γνωρίζουμε απευθείας ποια συνάρτηση πρέπει να κληθεί.
- δυναμική αποστολή (dynamic dispatch) - Όταν ο τύπος ενός στιγμιοτύπου δεν είναι γνωστός, πρέπει να βρούμε έναν τρόπο να καλέσουμε τη σωστή συνάρτηση.
Οι τύποι trait, όπως &dyn MyTrait, μάς δίνουν τη δυνατότητα να δουλεύουμε έμμεσα με στιγμιότυπα αντικειμένων χρησιμοποιώντας δυναμική αποστολή.
Όταν χρησιμοποιείται δυναμική αποστολή, η Rust σάς ενθαρρύνει να βάζετε dyn πριν απ' τον τύπο trait σας, ώστε να γίνει αντιληπτό κι από άλλους.
Λεπτομέρειες μνήμης:
- Η δυναμική αποστολή είναι κάπως πιο αργή, εξαιτίας της παρακολούθησης δεικτών που απαιτείται για να βρεθεί η πραγματική κλήση συνάρτησης.