Was sind Rückrufmethoden?
Ich bin ein Programmier-noob und habe nicht wirklich verstehen, das Konzept hinter callback-Methoden. Versucht darüber zu Lesen im wiki und es ging über meinem Kopf. Kann bitte jemand erklären in einfachen Worten?
InformationsquelleAutor der Frage noob_00 | 2010-12-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Rückruf ist etwas, das Sie übergeben, um eine Funktion, die ihm sagt, was es aufrufen soll irgendwann im Betrieb. Der code in der Funktion entscheidet, Wann die Funktion aufgerufen werden (und welche Argumente übergeben werden). In der Regel, die Art und Weise Sie dies tun, ist zu gehen die Funktion selbst als die 'callback', in Sprachen, wo die Funktionen sind Objekte. In anderen Sprachen, haben Sie vielleicht passieren irgendeine Art von spezieller Ding namens "function pointer" (oder ähnlich); oder Sie müssen möglicherweise übergeben Sie den Namen der Funktion (die bekommt dann schaute Laufzeit).
Einem trivialen Beispiel in Python:
Diesem Beispiel wollen wir uns trennen von der Aufgabe der Wiederholung eine Funktion aufrufen, von der eigentliche Aufruf der Funktion. Das ist nicht sehr nützlich, aber Sie demonstriert das Konzept.
In der realen Welt, Rückrufe sind eine Menge für Dinge wie threading-Bibliotheken, wo Sie rufen Sie einige thread-Erstellung-Funktion mit einem callback, der beschreibt, dass die Arbeit, die der thread gehen wird. Der thread-Erstellung Funktion hat die notwendigen arbeiten zur Einrichtung eines thread, und ordnet dann für die callback-Funktion aufgerufen werden, durch den neuen thread.
InformationsquelleAutor der Antwort Karl Knechtel
Wiki sagt:
In Allgemeinen Begriffen ist es den Mechanismus zu informieren, ein Stück code, d.h. eine Methode, welches Stück code ausgeführt werden soll, also eine andere Methode, wenn es nötig ist.
Rückruf bezieht sich auf die Tatsache, dass der client der aufrufenden Funktion gibt eine Funktion, die gehört zu den client-code in der Verantwortung der aufrufenden Funktion führen, und dies wird als argument übergeben.
Ein Beispiel ist in GUIs. Übergeben Sie als argument der Funktion, die aufgerufen werden, sobald ein Ereignis Auftritt (z.B. button gedrückt) und nach Beendigung der Veranstaltung
tritt diese Funktion aufgerufen wird.
Diese Funktion ist in der Regel umgesetzt, indem das Objekt, das ursprünglich für die Veranstaltung
InformationsquelleAutor der Antwort Cratylus
Callback-Funktion ist eine Funktion, die aufgerufen wird, über einen Funktionszeiger. Wenn Sie den Zeiger (Adresse) einer Funktion als argument einer anderen, wenn dieser Zeiger wird verwendet, um die Funktion aufrufen es Punkte, es wird gesagt, dass ein Rückruf erfolgt.
Warum Sollten Sie Mit Callback-Funktionen?
Einen Rückruf kann verwendet werden, für die Benachrichtigungen. Zum Beispiel, müssen Sie einen timer einstellen, in Ihrer Anwendung. Jedes mal, wenn der timer abläuft, muss die Anwendung informiert werden. Aber, die Umsetzer der Zeit RS-Mechanismus nicht wissen, etwas über Ihre Anwendung. Der will doch nur einen Zeiger auf eine Funktion mit einem bestimmten Prototyp, und bei der Verwendung dieser Zeiger macht es einen Rückruf, Mitteilung an Ihren Anwendung über das Ereignis, das aufgetreten ist. In der Tat, der SetTimer () - WinAPI nutzt eine callback-Funktion zu Benachrichtigen, dass der timer abgelaufen ist (und, im Falle es ist keine callback-Funktion zur Verfügung gestellt, sendet er eine Nachricht an die Anwendung Warteschlange).
InformationsquelleAutor der Antwort 0xAX
Call back bedeutet, dass Sie pass-code als parameter. Zum Beispiel, stellen Sie sich ein Knopf, der viel einen dialog anzeigen, wenn gedrückt:
Hier sagen wir dem button was ausführen, wenn es sein wird, klicken Sie auf. So, das framework führt den übergebenen code, wenn es detecs die klicken Sie auf. Innerhalb des Rahmens gibt es einige Codes, wie z.B.:
So, einige basic-code ruft den listener, wenn das entsprechende Ereignis Eintritt.
PS: Pseudocode hier -, nur beschreiben Sie die Idee.
InformationsquelleAutor der Antwort Vladimir Ivanov
Im Allgemeinen liefern Sie eine Funktion als parameter, die aufgerufen wird, wenn etwas geschieht.
Im C code passieren Sie etwas, das wie folgt aussieht:
Bedeutung, eine Funktion, die zwei Parameter nimmt, void * und lange und gibt ein int.
Mit Objekt-orientierten Sprachen die syntax ist manchmal einfacher. Zum Beispiel könnten Sie in der Lage sein, zu konstruieren, ein callback-Mechanismus, der es erlaubt die Benutzer zu übergeben Sie ein Objekt, das aussieht wie eine Funktion oder hat eine abstrakte Methode (also die Verpackung einer Funktion) und Kontext Daten auch.
Modernen Sprachen verwenden den Begriff "delegieren" finden Sie eine Funktion "Muster". Diese können verwendet werden als callbacks. Manche Sprachen verwenden auch den Begriff
lambda
ist im wesentlichen eine Funktion ohne Namen, die oft "on the fly" in einen code-block übergeben und als callback.C++11
eingeführt hat, diese in seine standard.Den Vorteil der Verwendung einer callback ist, dass Sie können trennen, D. H. zu reduzieren /zu entkoppeln, eine API von dem, was ruft es, und gewissermaßen Umgekehrt, d.h. obwohl Sie in einem Ort, den Sie wissen, Sie sind ein Aufruf an die API, an die Stelle der "handler" muss es nicht wissen, von wo es aufgerufen wurde.
Zum Beispiel, können Sie haben eine API, die Objekte generiert, und dann "ruft zurück", wie Sie generiert.
InformationsquelleAutor der Antwort CashCow