Διαδρομές
/
Elixir
Elixir
/
Ύλη
/
Συναρτήσεις με πολλαπλές ρήτρες
Συ

Συναρτήσεις με πολλαπλές ρήτρες σε Elixir

72 ασκήσεις

Σχετικά με την έννοια Συναρτήσεις με πολλαπλές ρήτρες

Στην Elixir, μία συνάρτηση μπορεί να έχει πολλαπλές ρήτρες. Αυτό επιτυγχάνεται με αντιστοίχιση προτύπων στα ορίσματα της συνάρτησης και με χρήση φρουρών.

# pattern matching the argument
def number(7) do
  "Awesome, that's my favorite"
end

# using a guard
def number(n) when is_integer(n) do
  "That's not my favorite"
end

def number(_n) do
  "That's not even a number!"
end
  • Χρησιμοποίησε πολλαπλές ρήτρες συνάρτησης για να εξάγεις τη λογική ελέγχου από τις συναρτήσεις.
  • Οι ρήτρες δοκιμάζονται με τη σειρά, από πάνω προς τα κάτω στο αρχείο πηγαίου κώδικα, μέχρι μία να πετύχει.
  • Αν καμία δεν πετύχει, το BEAM VM πετάει ένα FunctionClauseError.
  • Αν οι μεταβλητές των ορισμάτων δεν χρησιμοποιούνται ούτε στο σώμα της συνάρτησης ούτε σε κάποιον φρουρό, θα πρέπει να έχουν πρόθεμα _, αλλιώς ο μεταγλωττιστής εκπέμπει μια προειδοποίηση.
  • Οι ανώνυμες συναρτήσεις μπορούν επίσης να έχουν πολλαπλές ρήτρες.
    fn
      13 -> "Awesome, that's my favorite"
      _ -> "That's not my favorite"
    end
    

Σημείωσε ότι οι συναρτήσεις με πολλαπλές ρήτρες δεν πρέπει να συγχέονται με την υπερφόρτωση συναρτήσεων που μπορεί να γνωρίζεις από άλλες γλώσσες προγραμματισμού. Στην Elixir, οι συναρτήσεις αναγνωρίζονται μόνο από το όνομα και το πλήθος ορισμάτων τους, όχι από τους τύπους των ορισμάτων (καθώς δεν υπάρχει στατική τυποποίηση). Η συνάρτηση number/1 από το παράδειγμα θεωρείται μία μόνο συνάρτηση, ανεξάρτητα από το πόσες ρήτρες έχει.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Συναρτήσεις με πολλαπλές ρήτρες

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 10 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Συναρτήσεις με πολλαπλές ρήτρες