blob: 7178f93e3a0e3f16d85dc89a41fa4b81b94b64f8 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
Zesstra0c773a72017-06-25 11:52:33 +02002 closure symbol_function(symbol arg)
3 closure symbol_function(string arg)
Zesstra5481d492021-04-08 20:07:06 +02004 closure symbol_function(string arg, object|lwobject|string obj)
MG Mud User88f12472016-06-24 23:31:02 +02005
6BESCHREIBUNG
7 Erzeugt eine Lfun-, Efun- oder Operator-Closure aus <arg>, wobei
8 <arg> entweder ein string oder ein symbol sein muss. Fuer
9 Lfun-Closures gibt <obj> an, zu welchem Objekt die Lfun gehoert,
10 entweder angegeben durch das Objekt selbst (bzw. einen pointer
11 darauf) oder durch den Objektnamen als String. Wenn ein String
12 angegeben wird, wird das Objekt beim Aufruf geladen.
13
14 Wenn die Closure fuer eine Lfun in einem anderen als dem momentanen
15 Objekt erzeugt wird, ergibt dies eine "alien lfun closure". Solche
16 Closures sind an das Objekt gebunden, das symbol_function()
17 aufgerufen hat (dieses Objekt wird von to_object() geliefert),
18 obwohl der eigentliche Code in einem anderen Objekt steht (das mit
19 get_type_info() gefunden werden kann).
20
21 Als "private" deklarierte Funktionen koennen auf diese Weise nie
Zesstra0c773a72017-06-25 11:52:33 +020022 aufgerufen werden, "static" und "protected" deklarierte Lfuns nur
23 dann, wenn <obj> das gueltige Objekt ist.
MG Mud User88f12472016-06-24 23:31:02 +020024
25BEISPIELE
26 symbol_function("efun::users");
27 --> ergibt: #'users
28 symbol_function("QueryProp", other_obj);
29 --> ergibt: other_obj->QueryProp()
30
Zesstra0c773a72017-06-25 11:52:33 +020031GESCHICHTE
32 Eingefuehrt in 3.2@70.
33
MG Mud User88f12472016-06-24 23:31:02 +020034SIEHE AUCH
35 lambda(E), quote(E)