In unserem Bugtracker gibt es einen alten Feature-Request, ueber den wir
Ende letzten Jahres wieder vermehrt diskutiert haben: Eine Variante
von call_other(), die einen Fehler wirft, wenn die aufzurufende Funktion
nicht existiert. So eine Efun an sich sollte kein Problem sein, allerdings
sollte sie auch einen Operator wie call_other() haben. Aber wir koennen
uns fuer keinen entscheiden...
Es gibt etliche Ideen dazu:
ob=>fun() => ist zu leicht mit den Vergleichsoperatoren
>= und <= zu verwechseln.
ob.fun() . suggeriert eher Pruefung zur Compilezeit,
auch ist es optisch etwas weit von -> entfernt.
ob~>fun() Die Tilde steht eher fuer annaehernd, also
alles andere als strikt.
ob-->fun() --> fuehrt zu Doppeldeutigkeiten (if (x-->10))
ob==>fun()
ob->>fun()
ob.>fun()
ob:>fun()
ob!>fun()
ob@fun() or fun@ob()
Uns interessiert, ob Euch eine der obigen Optionen besonders gefaellt oder
ob Ihr eigene Ideen dazu habt. Alle Kommentare, die uns dabei helfen,
uns zu entscheiden, sind herzlich willkommen.
Gruss
Gnomi.
ob->fun(mixed arg, ...)
ob->"fun"(mixed arg, ...)
ob->(fun)(mixed arg, ...)
da wuerde sich noch etwas wie
ob->[fun](mixed arg, ...)
anbieten.
ich finde aufgrund der Naehe zu anderen Programmiersprachen die Punkt-
Notation am Besten. Bei einigen Scriptsprachen passiert die Pruefung auch
erst zur Laufzeit, weswegen ich darin eigentlich kein Problem sehe.
LG, Ranger
defaultwert waere das Ergebnis, wenn die Funktion nicht existiert.
ob->[void]fun()
ob->[]fun()
koennte dann einen Fehler werfen, wenn die Funktion nicht existiert.
defaultwert koennte auch eine expression sein,
was das noch maechtiger machen wuerde.