Moin,
das ist ein gutes Beispiel für die Sinnhaftigkeit mancher Beispiele, wobei ich denke, dass es schwierig ist, bei der Dokumentation einer Skriptsprache immer sinnvolle und kurze Beispiele zu finden.
In AHK v2 sind auch Funktionen Objekte, d.h. die Namen von Funktionen entsprechen globalen Variablen mit einer Objektreferenz. Die Zeile
ist - wie auch in der Doku beschrieben - eine Kurzfassung von
Code: Select all
Sum(a, b) {
Return a + b
}
sumfn := Sum
Der Variablen
sumfn wird in beiden Fällen eine Referenz auf das Funktionsobjekt
Sum zugewiesen. Das Funktionsobjekt
Sum hat 2 Parameter
(a, b). Der Rückgabewert dieses Funktionsobjekts wird im ersten Fall als Fat-Arrow-Funktion
=> definiert, im zweiten als vollständiger Funktionskörper. In beiden Fällen enthält
sumfn eine Referenz auf eine Funktion mit zwei Pflichtparametern. Diese zwei Parameter müssen auch übergeben werden, wenn man
sumfn im Skript aufruft:
Code: Select all
MsgBox(sumfn(a, b))
; entspricht
MsgBox(Sum(a, b))
Und das Beste zum Schluss: Du kannst der Variablen
sumfn auch eine anonyme/namenlose Funktion zuweisen:
In diesem Fall gibt es keine Funktion
Sum().