0

Adobe特别说明了字典:

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

但是,当我跑步时

if(myInstance in myDictionary)  { ... }

要查看 myInstance 是否已经作为 myDictionary 中的“键”存在,调用了 myInstance.tostring!

任何人都知道为什么或解决它的方法吗?

4

1 回答 1

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");
于 2012-12-26T03:16:32.837 回答