2010年9月27日 星期一

Scripting.Dictionary

在 VBScript 或是 Jscript 中有一個很好用的物件叫做Scripting.Dictionary
他就像是 C++ 的 map, PHP 的 array 是一個關聯陣列 (不過Jscript的物件已經可以當關聯陣列用了 所以這個物件對Jscript不太需要)

這個物件有一個很好的特性 就是他的 Items() 和 Keys() method 傳回的陣列元素的順序就是元素加入物件時的先後順序
利用這個特性 用這個物件實做出像是 Stack 或是 Queue 就非常容易了

並沒有任何公開文件聲明Scripting.Dictionary物件必須維持此特性 只能說這是Scripting.Dictionary內部資料結構的實作造成這個事實
雖然依賴這種未公開特性去寫code有風險 只要微軟改變這個物件的實作 就可以讓這一性質消失
但是我覺得微軟應該不會再對Scripting.Dictionary有什麼變動了 沒有這個必要 VBScript 也不是微軟的焦點
所以如果有需要 就用這個特性寫下去吧  畢竟要自己實作 Stack 或是 Queue 太麻煩了

沒有留言:

張貼留言