Privacy Policy Cookie Policy Terms and Conditions Rückruffunktion - Wikipedia

Rückruffunktion

aus Wikipedia, der freien Enzyklopädie

Dieser Artikel beschreib die Rückruffunktion in der Informatik. Für Produkterückrufe, siehe Rückrufaktion.

Eine Rückruffunktion (englisch callback function) bezeichnet in der Informatik eine Funktion, die einer anderen Funktion als Parameter übergeben wird, und von dieser unter gewissen Bedingungen aufgerufen wird. Dieses Vorgehen folgt dem Entwurfsmuster der Inversion of Control.

Dadurch wird es möglich, Funktionen allgemein zu definieren und erst beim Aufrufen der Funktion durch Angabe der Rückruffunktion das Verhalten exakt zu bestimmen. Häufig bekommt eine Rückruffunktion gar keinen Namen, sondern wird als anonyme Funktion direkt beim Aufruf definiert (siehe auch Lambda-Kalkül). Über Rückruffunktionen erreicht man eine lose Kopplung zwischen einzelnen Komponenten.

[Bearbeiten] Beispiel

Hier ein kurzes Beispiel für die Verwendung von Rückruffunktionen: Es soll eine Funktion apply_to geschrieben werden, die eine beliebige andere Funktion auf eine Liste von Werten anwendet und eine Liste der Ergebnisse zurückgibt. Eine Umsetzung in Pseudocode:

function apply_to (Funktion, Werte):
    var Ergebnis; //Liste für die Ergebnisse

    foreach w in Werte do // für alle Werte ...
        e = Funktion (w); // rufe die Rückruffunktion ...
        Ergebnis[] = e;   // und hänge das Resultat an die Ergebnisliste an.
    end;

    return Ergebnis;
end apply_to;

Diese Funktion kann jetzt folgendermaßen verwendet werden:

function verdoppeln (Wert): // dies ist eine Rückruffunktion
    return Wert * 2;
end verdoppeln;

function quadrat (Wert): // dies ist eine andere Rückruffunktion
    return Wert * Wert;
end quadrat;

// Anwenden der Funktionen auf eine Liste:

Werte = (1, 2, 3, 4);

Doppelte_Werte   = apply_to(verdoppeln, Werte); //ergibt (2,4,6,8)
Quadrierte_Werte = apply_to(quadrat, Werte);    //ergibt (1,4,9,16)

Oder, kürzer, in Lambda-Notation:

Werte = (1, 2, 3, 4);

Doppelte_Werte   = apply_to(lambda x: x * 2, Werte); //ergibt (2,4,6,8)
Quadrierte_Werte = apply_to(lambda x: x * x, Werte); //ergibt (1,4,9,16)

[Bearbeiten] Siehe auch

Andere Sprachen

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -