Dokumentation zu: apply.de(E)

HR Image


SYNOPSIS
        mixed apply(closure cl, mixed arg, ...);

BESCHREIBUNG
        Wertet die Closure <cl> aus. Wenn <cl> keine Closure ist, wird <cl>
        unveraendert zurueck geliefert und alle Argumente <arg> werden
        ignoriert.

        Es gibt einen kleinen Unterschied zu funcall(), das ja im Wesentlichen
        das gleiche tut (naemlich, eine Closure auswerten): wenn das letzte
        Argument von apply() ein Array ist, wird jedes Element dieses Arrays
        zu einem separaten zusaetzlichen Parameter der Closure umgewandelt.

        Eine moegliche Anwendung waere:
            mixed eval(object ob,string func,mixed *args)
            {
                return apply(#'call_other,ob,func,args);
            }

        Das fuehrt zu folgenden Aufrufen:
            ob->func(args[0],args[1],...,args[sizeof(args)-1])

        Waere stattdessen funcall() aufgerufen worden, so haette das ergeben:
            ob->func(args)

        Eine wichtige Anwendung von apply() ist das Auswerten des
        Array-Arguments in "varargs" Funktionen.

AENDERUNGEN
        Eingefuehrt in 3.2@70.
        LDMud 3.2.8 fuehrte ein, dass das erste Argument zurueck gegeben wird,
            wenn es sich nicht um eine Closure handelt.

SIEHE AUCH
        funcall(E), closures(LPC), varargs(LPC)

Das Original der Seite ist in Englisch.

Start » Magierhandbuch » Docu » Efun.de » Apply.de Letzte Generierung: 16.04.2009, 21:45
Email an: mud@wl.mud.de
Valid HTML 4.01!