Call other

来自MudWiki

名称

   call_other() - 呼叫在其它对象中的函数(方法)

语法

   unknown call_other( object ob, string func, ... );
   unknown call_other( object ob, mixed *args);
   unknown call_other( object *obs, string func, ... );
   unknown call_other( object *obs, mixed *args );

描述

   呼叫其它对象中的方法,因为返回值为调用方法的返回值,所以在编译阶段无法判断返回值的类型,最好在使用时做类型检查。字符串 `func` 是对象 `ob` 中被调用的方法名称,而第3、4……个等参数会做为第1、2……个参数按顺序传递给 `func`。

   如果 call_other 函数第一个对象参数是数组,那么 call_other 会逐一呼叫它们的 `func`,返回值也是一个数组。

   如果 call_other 函数的第二个参数是数组,那么数组的第一个元素必须是要调用的方法名字符串 `func` ,剩余的元素则是要传入方法的参数。

   这里有一个使用 call_other() 更好的方式:

   object ob | object *obs -> func ( ... );

   如:
   call_other(ob, "query", "name");

   可以写成:
   ob->query("name");

   如果第二个参数使用数组,以上示例可以写成:
   call_other(ob, ({ "query", "name" }));

   而第一个参数是数组的示例如下:
   users()->quit();

翻译

   雪风(i@mud.ren)