Πίνακας περιεχομένων:

Τι είναι ένα C++ λάμδα;
Τι είναι ένα C++ λάμδα;

Βίντεο: Τι είναι ένα C++ λάμδα;

Βίντεο: Τι είναι ένα C++ λάμδα;
Βίντεο: Лямбда-выражения | Лямбда функции | Анонимные функции | Изучение С++ для начинающих. Урок #143 2024, Νοέμβριος
Anonim

Σε C++11 και μεταγενέστερα, α λάμδα έκφραση-που συχνά ονομάζεται α λάμδα -είναι ένας βολικός τρόπος ορισμού ενός αντικειμένου ανώνυμης συνάρτησης (ένα κλείσιμο) ακριβώς στη θέση όπου καλείται ή μεταβιβάζεται ως όρισμα σε μια συνάρτηση.

Σε σχέση με αυτό, τι τύπος είναι το Lambda C++;

[C++11: 5.1. 2/3]: Το τύπος απο λάμδα -έκφραση (που είναι και η τύπος του αντικειμένου κλεισίματος) είναι μια μοναδική, ανώνυμη κλάση μη ένωση τύπος - κάλεσε το κλείσιμο τύπος - οι ιδιότητες των οποίων περιγράφονται παρακάτω. Αυτή η τάξη τύπος δεν είναι άθροισμα (8.5.

Επιπλέον, γιατί χρειαζόμαστε εκφράσεις λάμδα στη C++; C++ εισήγαγε αντικείμενα συναρτήσεων ή συντελεστές. Λειτουργοί είναι κλάσεις που υπερφορτώνουν τον operator(). Άλλες γλώσσες προγραμματισμού όπως η Haskell, η C#, η Erlang ή η F# ενεργοποιούν τους ορισμούς συναρτήσεων ακριβώς εκεί που χρησιμοποιούνται. Αυτά τα είναι γνωστός ως εκφράσεις λάμδα γιατί η σύνταξή του είναι εμπνευσμένο σε λάμδα λογισμός.

Επίσης το ερώτημα είναι πώς περνάς μια συνάρτηση λάμδα στην C++;

3 τρόποι για να μεταβιβάσετε ένα λάμδα ως όρισμα σε μια συνάρτηση:

  1. Χρησιμοποιώντας τη συνάρτηση std:: για να δηλώσετε ένα αντικείμενο λάμδα. void lambdaExample1()
  2. Χρησιμοποιώντας το typedef για να δηλώσετε έναν τύπο συνάρτησης και να του εκχωρήσετε μια συνάρτηση λάμδα. void lambdaExample2()
  3. Χρησιμοποιώντας το struct για να δηλώσετε ένα λάμδα.

Τι είναι το κλείσιμο λάμδα;

ΕΝΑ λάμδα είναι ουσιαστικά μια συνάρτηση που ορίζεται inline και όχι η τυπική μέθοδος δήλωσης συναρτήσεων. Λάμδας μπορεί συχνά να μεταφερθεί ως αντικείμενα. ΕΝΑ κλείσιμο είναι μια συνάρτηση που περικλείει την περιβάλλουσα κατάσταση με αναφορά σε πεδία εξωτερικά του σώματός της.