Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/efun/apply

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

BESCHREIBUNG
        Wertet die Closure  aus. Wenn  keine Closure ist, wird 
        unveraendert zurueck geliefert und alle Argumente  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.

GESCHICHTE
        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)


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.