Dictionary 自动热键|无法使用键从关联数组/字典中检索值
我正在尝试用AutoHotkey编写一个简短的程序,它将采用4位代码的第一个字符,将其存储在变量Dictionary 自动热键|无法使用键从关联数组/字典中检索值,dictionary,autohotkey,associative-array,Dictionary,Autohotkey,Associative Array,我正在尝试用AutoHotkey编写一个简短的程序,它将采用4位代码的第一个字符,将其存储在变量TypeChar中,然后在名为Type的关联数组/字典中查找匹配值,并将该值存储在变量RetrievedType中 我遇到的问题是,当消息框中文本“Type:”之后显示RetrievedType的值时,消息框仅显示预定文本,而不显示变量的值。我不知道出了什么问题,但在对其他字符串进行了一些测试之后,我相信这可能与字符被解释为整数而不是字符串有关。不过我真的不确定 到目前为止,我掌握的代码是: Typ
TypeChar
中,然后在名为Type
的关联数组/字典中查找匹配值,并将该值存储在变量RetrievedType
中
我遇到的问题是,当消息框中文本“Type:”之后显示RetrievedType
的值时,消息框仅显示预定文本,而不显示变量的值。我不知道出了什么问题,但在对其他字符串进行了一些测试之后,我相信这可能与字符被解释为整数而不是字符串有关。不过我真的不确定
到目前为止,我掌握的代码是:
Type := {"1":"Alpha", "2":"Beta", "3":"Gamma", "9":"Delta"}
p::
Code := "2xxx"
TypeChar := SubStr(Headcode, 1, 1)
RetrievedType := Type[TypeChar]
MsgBox, 0, Info, Type: %RetrievedType%
Exit
哪个输出:
任何帮助或解决方案都将不胜感激,谢谢 显而易见的问题是,
Headcode
不存在,但我假设你在这里发布代码时这只是一个意外
真正的问题是您试图访问一个数字键,但是您的键是字符串。这是一种v1限制/问题,但如果你做得正确,就不是真正的问题。
你可以阅读更多关于它的内容 因此,修复方法是强制转换为字符串,例如像这样
“2
(在AHK中并不存在铸造,但我认为这已经足够接近了)
是的,很抱歉,我不得不编辑掉脚本中对问题不有用的一些部分,并更改了一些变量的名称,一定是忘记了将
Headcode
更改为code
。关于你的答案,它非常有效!非常感谢你的帮助!
Type := { "1": "Alpha"
, "2": "Beta"
, 2 : "Beta2"
, "3": "Gamma"
, "9": "Delta" }
Code := "2xxx"
TypeChar := SubStr(Code, 1, 1)
RetrievedType1 := Type["" TypeChar]
RetrievedType2 := Type[TypeChar]
MsgBox, 0, Info, % "Type: " RetrievedType1 "`nType2: " RetrievedType2