Adobe特别说明了字典:
对象的标识用于查找对象,而不是调用 toString() 返回的值
但是,当我跑步时
if(myInstance in myDictionary) { ... }
要查看 myInstance 是否已经作为 myDictionary 中的“键”存在,调用了 myInstance.tostring!
任何人都知道为什么或解决它的方法吗?
Adobe特别说明了字典:
对象的标识用于查找对象,而不是调用 toString() 返回的值
但是,当我跑步时
if(myInstance in myDictionary) { ... }
要查看 myInstance 是否已经作为 myDictionary 中的“键”存在,调用了 myInstance.tostring!
任何人都知道为什么或解决它的方法吗?
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");