each(3)               LPC 系統函數               each(3)

名稱
     each() - 根據參數指定的對應依序取出它的元素

語法
     mixed *each( mapping m, int reset );

描述
     <m> 中的 (key, value) 對, 會由本函數依序"拿"出來, 傳回一個
     陣列, 該陣列含兩個元素, 第一個是 <key>, 第二個是 <value>.
     拿的次序跟 keys(), values() 的次序相同. 當拿完的時候, each()
     會傳回 ({}), 也就是空陣列.
	注意: 如果你的判斷條件不對, 本函數很容易造成無窮迴圈.
		此時, each() 會一直循環式的取出 <m> 對應中的元素.
		也就是拿完還回從頭拿起.
              如果你還沒處理完就有其它函數也使用 <m>, 則會重設
		對應 <m> 的位置, 設成開頭.
     本函數的使用要在驅動程式編譯時, 在 options.h 中設定 EACH.

例子
     void test()
     {
	mapping x=([
        	1:11,
       		2:22,
        	3:33,
        	4:44,
        	5:55,
        	6:66,
  	]);
  	mixed *pair;


        while ((pair = each(x)) != ({})) {
                printf ("%O\n", pair);
        }
     }


請參考
     keys(3), values(3)

MudOS                Last change: 5 Sep 1994                    1

