[wizs] foreach 用法

看板mud_sanc (Sanctuary - 聖殿)作者 (眼鏡男)時間18年前 (2007/02/04 19:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
底下是某房間一個常用的程式段... 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)
文章代碼(AID): #15nRxsS3 (mud_sanc)
文章代碼(AID): #15nRxsS3 (mud_sanc)