作者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)