【发布时间】:2012-02-25 20:19:14
【问题描述】:
我正在使用Dictionary,其中键是Number 对象,但如果键是大整数,我会遇到意想不到的问题。
下面是一些示例代码,它在字典中插入两个键值对,一个带有小键,一个带有大键:
var dictionary:Dictionary = new Dictionary();
var smallNumberKey:Number = 1;
dictionary[smallNumberKey] = "some value";
var largeNumberKey:Number = 0x10000000;
dictionary[largeNumberKey] = "some value";
for (var key:Object in dictionary) {
trace("Key: " + key);
trace("Key type: " + flash.utils.getQualifiedClassName(key));
trace("Key as Number: " + (key as Number));
}
这给出了以下输出:
Key: 1
Key type: int
Key as Number: 1
Key: 268435456
Key type: String
Key as Number: null
似乎没有一个键存储为数字。这是为什么?第一个存储为int,可以转换为Number。然而,第二个似乎存储为字符串,这对我来说毫无意义。这是怎么回事?
【问题讨论】: