Διαδρομές
/
Elixir
Elixir
/
Ύλη
/
Τελεστής pipe
Τε

Τελεστής pipe σε Elixir

10 ασκήσεις

Σχετικά με την έννοια Τελεστής pipe

Ο τελεστής |> ονομάζεται τελεστής pipe. Μπορείς να τον χρησιμοποιήσεις για να συνδέσεις σε αλυσίδα κλήσεις συναρτήσεων με τέτοιον τρόπο ώστε η τιμή επιστροφής της προηγούμενης κλήσης συνάρτησης να περνά ως πρώτο όρισμα στην επόμενη κλήση συνάρτησης.

String.replace_suffix(String.upcase(String.duplicate("go ", 3)), " ", "!")

# versus

"go "
|> String.duplicate(3)
|> String.upcase()
|> String.replace_suffix(" ", "!")

Μπορείς επίσης να τον χρησιμοποιήσεις σε μία μόνο γραμμή:

"go " |> String.duplicate(3) |> String.upcase() |> String.replace_suffix(" ", "!")

Οι συναρτήσεις του Kernel συνήθως χρησιμοποιούνται παντού χωρίς το όνομα του module Kernel, αλλά το όνομα του module χρειάζεται όταν χρησιμοποιείς αυτές τις συναρτήσεις σε μια αλυσίδα pipe. Για παράδειγμα, το 2 * 3 == 6 μπορεί επίσης να γραφτεί ως:

2 |> Kernel.*(3) |> Kernel.==(6)

Είναι θέμα προσωπικής προτίμησης το πότε να χρησιμοποιείς τον τελεστή pipe και πότε όχι. Μερικοί προγραμματιστές της Elixir συνηθίζουν να ακολουθούν αυτούς τους κανόνες:

  • Μη χρησιμοποιείς τον τελεστή pipe όταν κάνεις μία μόνο κλήση συνάρτησης.

    # do
    String.split("hello", "")
    
    # don't
    "hello" |> String.split("")
    
  • Μη δημιουργείς ανώνυμες συναρτήσεις απευθείας μέσα στην αλυσίδα pipe.

    # do
    take_n_letters = fn n -> Enum.take(?a..?z, n) end
    2 |> Kernel.*(3) |> take_n_letters.()
    
    # don't
    2 |> Kernel.*(3) |> (fn n -> Enum.take(?a..?z, n) end).()
    
  • Ξεκίνα πάντα μια αλυσίδα pipe με μια μεταβλητή ή μια τιμή literal, όχι με κλήση συνάρτησης.

    # do
    "hello" |> String.upcase() |> String.split("")
    
    # don't
    String.upcase("hello") |> String.split("")
    
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Τελεστής pipe

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

Ξεκλείδωσε 5 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Τελεστής pipe