作者laechan (眼镜男)
看板mud_sanc
标题[wizs] foreach 用法
时间Sun Feb 4 19:09:40 2007
底下是某房间一个常用的程式段...
mixed usr;
int i,j;
string str="";
object ob;
usr=all_inventory(this_object()); // 读取房间内所有物件
j=sizeof(usr);
for(i=0;i<j;i++)
{
ob=usr[i];
str=str+" "+ob->query("short")+" 正在这个房间。\n";
}
write(str);
若是改用 foreach 写法,就如下...
mixed usr;
string str="";
usr=all_inventory(this_object()); // 读取房间内所有物件
foreach(object ob in usr)
str=str+" "+ob->query("short")+" 正在这个房间。\n";
write(str);
应该看的懂吧。更简捷、但是不太好的写法是...
string str="";
foreach(object ob in mixed usr=all_inventory(this_object()))
str=str+" "+ob->query("short")+" 正在这个房间。\n";
write(str);
foreach 跟 for 的概念是差不多的,就是回圈,只是 foreach
已经预设从 size 为 n 的阵列的第 0 个执行到第 n-1 个,换
句话说 sizeof(阵列) 的计算就可以免去。
因此原则上,放在 foreach 里面的东西,必须简单...
mixed usr=all_inventory(this_object()); // 先读取阵列
foreach(object ob in usr) // 然後才放进 foreach 中
有兴趣的 wiz 可自行研究。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 61.225.1.55 (02/04 19:10)