当前位置:  开发笔记 > 编程语言 > 正文

ActionScript Dictionary:如何访问第一个元素?它是如何存储的?

如何解决《ActionScriptDictionary:如何访问第一个元素?它是如何存储的?》经验,为你挑选了1个好方法。

当你执行"for ... in"循环时,它将迭代一个Dictionary例如.我想知道如何跟踪内部以及如何访问它?

我认为Dictionary类存储对第一个项目的引用,但我想访问它并检查但我无法弄清楚如何.这有点高级,请问有什么想法吗?

谢谢,鲁迪



1> matthewwitha..:

ActionScript的Dictionary类实际上不是有序集合.换句话说,它实际上没有"第一项".当然,如果使用foror for each循环遍历项目,则必须首先访问其中一个项目,以便您可以执行以下操作:

var firstKey:*;
var firstValue:*;
for (firstKey in myDictionary)
{
   firstValue = myDictionary[firstKey];
   break;
}
// variables now hold the "first" key and value, or undefined if the dictionary is empty.

但是,Dictionary类没有关于项目顺序的合同,即使订单是可预测的(字母键,首次分配==首先返回等),我认为它是一个可以在播放器版本之间更改的实现细节.此外,该类不会公开您可以访问的任何内部地图.

如果您真的关心控制迭代顺序(或者只是想知道它在ActionScript中的处理方式),我建议您查看Proxy类.通过扩展它并覆盖一些方法,您可以控制项目迭代的顺序,以及其他一些很酷的东西.(与迭代相关的方法是nextName(),nextNameIndex()和nextValue(),官方文档中有一个示例.)这样,您可以创建自己的类似于Dictionary的集合类,它也可以为项目编制索引.

或者,您可以查看第三方Collection/Iterator包,它们可能已经具有您需要的内容.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有