Dictionary使用tostring而不是object?

时间:2012-12-12 11:44:00

标签: actionscript-3 dictionary adobe

关于词典的Adobe specifically states

  

对象的标识用于查找对象,而不是从调用toString()返回的值

然而,当我跑

if(myInstance in myDictionary)  { ... }

要查看myInstance是否已作为myDictionary中的'key'存在,请调用myInstance.tostring!

任何人都知道原因或解决方法吗?

1 个答案:

答案 0 :(得分:1)

in关键字通常与对象属性一起使用,对象属性是字符串。考虑for each循环与for in循环之间的差异。

我们通常使用for in循环来迭代对象的动态属性:

private var o:Object = { property1: "value1", property2: "value2" };
for (var propertyName:String in o)
{
    trace(propertyName);
    trace(o[propertyName]);
}

Outputs:
property1
value1
property2
value2

因此,在您的代码段中,in关键字正在调用toString()

测试密钥是否存在的正确方法是测试null

if (myDictionary[myInstance])
    trace("key exists and it has a value");