In Hollywood sind Funktionen nur Variablen vom Typ Funktion. Daher können Sie leicht anderen Variablen zuweisen, z.B:
myfunc = DisplayBrush ; weist "myfunc" DisplayBrush zu
myfunc(1, #CENTER, #CENTER) ; ruft DisplayBrush(1, #CENTER,...
; ... #CENTER) auf
|
Sie können sogar die Definition einer Funktion als Auftrag schreiben:
p_Add = Function(a, b) Return(a + b) EndFunction c = p_Add(5, 2) ; c erhält 7 |
Die Definition von p_Add() in der ersten Zeile ist die gleiche
wie wenn Sie schreiben:
Function p_Add(a, b)
Return(a + b)
EndFunction
|
Sie könnten auch Hollywood-Befehle mit Ihrem eigenen Funktionen ersetzen. Wenn Sie z.B. wollen, dass alle Print()-Aufrufe stattdessen DebugPrint() verwenden, könnte der folgende Code dies zu tun:
Function p_Print(...)
DebugPrint(Unpack(arg)) ; leitet die Argumente an DebugPrint() um
EndFunction
Print = p_Print ; alle Print() rufen nun p_Print() auf
Print("Hello World!") ; Print() leitet nun nach p_Print() um
|
Was die in Klammer eingeschlossenen drei Punkte ... bedeuten,
können sie unter Variable Anzahl von Argumenten (...) nachlesen.
Oder eine noch einfachere Lösung:
Print = DebugPrint ; leitet alle Aufrufe von Print()...
; ... nach DebugPrint() um
Print("Hello World!") ; ruft direkt DebugPrint() auf
|