1

在 autohotkey_L 中,有一个关联数据结构。例如,

   hash := {key_hash:"value"}
   val:= hash["key_hash"]
   MsgBox %val%

但是如果我想使用一个变量作为键来访问关联数组中的值,它就会失败。例如,以下不起作用

  hash := {key_hash:"value"}
   other_val="key_hash"
   val:= hash[other_val]
   MsgBox %val%

这也不起作用:

   hash := {key_hash:"value"}
   other_val="key_hash"
   val:= hash[%other_val%]
   MsgBox %val%
   ** gave me an error: The following variable name contains an illegal character: ""key_hash""

如何使用变量访问关联数组中的值?我需要这个来获取密钥作为函数中的参数。

4

2 回答 2

2

奥尔比,

您的变量 other_val 包含数据: "key_hash" ,而不是您想要的:key_hash。只需删除两个双引号就可以了。

hash := {key_hash:"value"}
other_val=key_hash
val:= hash[other_val]
MsgBox %val%
于 2013-04-27T05:15:17.380 回答
1

或使用赋值 (:=)

hash:={key_hash:"value"} ; hash:=Object("key_hash", "value")
other_val:="key_hash"
val:=hash[other_val]
MsgBox, % val
于 2013-04-29T10:09:18.363 回答