访问关联数组/对象中的值的问题
Problems with accessing values in associate arrays / objects
我有一个基本如下的文件:
global t = {"0x00FF14": 123}
manageModifierStates(color) {
test := t[color]
Tooltip, %test% | %color%, 11, 11
}
~\::
PixelGetColor, pixelColor, 10, 10, RGB
manageModifierStates(pixelColor)
Return
我按下 \ 键的结果是我得到一个工具提示,其中管道的左侧没有任何内容,但在右侧显示 0x00FF14。我在访问对象 属性 时做错了什么?我 want/expect 工具提示导致 123 | 0x00FF14
感谢您提供的任何见解
我不能告诉你技术答案的细节,但这是数据类型的问题(数字 vs 字符串)。
由于某些原因,与变量在 ahk 的其余部分表现出的灵活性相比,对象的声明有时过于严格。
现在开始讨论您的问题,语法 0x... 在 ahk 中不需要引号。它被识别为一个数字,准确地说是一个十六进制数。所以你可以安全地删除你放在它周围的引号。此外,这是解决问题的一种方法。
另一种方法是,在声明之后,您只需执行以下解决方法:
global t = {"0x00FF14": 123}
for k,v in t
t[k] := v
我有一个基本如下的文件:
global t = {"0x00FF14": 123}
manageModifierStates(color) {
test := t[color]
Tooltip, %test% | %color%, 11, 11
}
~\::
PixelGetColor, pixelColor, 10, 10, RGB
manageModifierStates(pixelColor)
Return
我按下 \ 键的结果是我得到一个工具提示,其中管道的左侧没有任何内容,但在右侧显示 0x00FF14。我在访问对象 属性 时做错了什么?我 want/expect 工具提示导致 123 | 0x00FF14
感谢您提供的任何见解
我不能告诉你技术答案的细节,但这是数据类型的问题(数字 vs 字符串)。
由于某些原因,与变量在 ahk 的其余部分表现出的灵活性相比,对象的声明有时过于严格。
现在开始讨论您的问题,语法 0x... 在 ahk 中不需要引号。它被识别为一个数字,准确地说是一个十六进制数。所以你可以安全地删除你放在它周围的引号。此外,这是解决问题的一种方法。
另一种方法是,在声明之后,您只需执行以下解决方法:
global t = {"0x00FF14": 123}
for k,v in t
t[k] := v