自动热键 |无法使用键从 Associative Array/Dictionary 检索值
AutoHotkey | Cannot retrieve value from Associative Array/Dictionary using key
我正在尝试在 AutoHotkey 中编写一个短程序,它将获取 4 位代码的第一个字符,将其存储在变量 TypeChar
中,然后在关联 [=] 中查找匹配值32=] 调用了 Type
并将该值存储在变量 RetrievedType
.
中
我遇到的问题是当RetrievedType
的值显示在消息框的文本“Type:”之后时,消息框只显示预定的文本而没有变量的值.我不知道出了什么问题,但是在对其他字符串进行了一些测试之后,我相信这可能与被解释为整数而不是字符串的字符有关。不过我真的不确定。
所以,我目前的代码是这样的:
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 limitation/issue,但如果你 做对了 。
就不是真正的问题
您可以阅读更多相关信息 here。
所以解决方法是 cast 到字符串,例如像这样 "" 2
.
(AHK 中不存在转换,但我认为这已经足够了)
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
我正在尝试在 AutoHotkey 中编写一个短程序,它将获取 4 位代码的第一个字符,将其存储在变量 TypeChar
中,然后在关联 [=] 中查找匹配值32=] 调用了 Type
并将该值存储在变量 RetrievedType
.
我遇到的问题是当RetrievedType
的值显示在消息框的文本“Type:”之后时,消息框只显示预定的文本而没有变量的值.我不知道出了什么问题,但是在对其他字符串进行了一些测试之后,我相信这可能与被解释为整数而不是字符串的字符有关。不过我真的不确定。
所以,我目前的代码是这样的:
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 limitation/issue,但如果你 做对了 。
就不是真正的问题
您可以阅读更多相关信息 here。
所以解决方法是 cast 到字符串,例如像这样 "" 2
.
(AHK 中不存在转换,但我认为这已经足够了)
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