Autohotkey 在对象键之间循环时,为什么键会转换为新的数字?

Autohotkey 在对象键之间循环时,为什么键会转换为新的数字?,autohotkey,Autohotkey,我有一个问题,看看这个代码: #SingleInstance, Force SetBatchLines, -1 CoordMode, Pixel, screen FileDelete, Log.txt listObject := {} listObject[4280361510] := true for index1 in listObject { FileAppend, % "Item: " . index1 . "`n", Log.txt } 打印到文件中的内容: Item:

我有一个问题,看看这个代码:

#SingleInstance, Force
SetBatchLines, -1
CoordMode, Pixel, screen

FileDelete, Log.txt

listObject := {}
listObject[4280361510] := true

for index1 in listObject
{
    FileAppend, % "Item: " . index1 . "`n", Log.txt
}
打印到文件中的内容:

Item: -14605786
我希望它在哪里打印:

Item: 4280361510
当我分配的索引是
428036510
时,为什么属性显示为
-14605786

此外:

打印到文件:

But 4280361510 still works. 
And -14605786 works too. 

为什么这两个属性都被指定给对象?

42803616110
-14605786
在32位算术中是相同的数字。有符号的32位数字环绕并变为负数,约为20亿(231)。这个数字几乎是第二次出现,在这种情况下,它将再次变为正值。

不确定这是否重要,但为了支持gdip AHK库,我正在32位ANSI版本上运行。
But 4280361510 still works. 
And -14605786 works too.