我有以下代码:
ignored := [ "Rainmeter.exe", "Nimi Places.exe", "mumble.exe" ]
a := ignored.HasKey("mumble.exe")
MsgBox,,, %a%
尽管该字符串明显存在于数组中,但它返回 0
。
如何测试一个字符串值是否存在于数组中?
PS:我还尝试过使用if var in
,结果相同。
我有以下代码:
ignored := [ "Rainmeter.exe", "Nimi Places.exe", "mumble.exe" ]
a := ignored.HasKey("mumble.exe")
MsgBox,,, %a%
尽管该字符串明显存在于数组中,但它返回 0
。
如何测试一个字符串值是否存在于数组中?
PS:我还尝试过使用if var in
,结果相同。
仅使用一个命令是不可能的。截至1.1.22.3版本,AHK_L中未实现此功能。
你需要定义自己的函数。
hasValue(haystack, needle) {
if(!isObject(haystack))
return false
if(haystack.Length()==0)
return false
for k,v in haystack
if(v==needle)
return true
return false
}
ignored := { "Rainmeter.exe":0, "Nimi Places.exe":0, "mumble.exe":0 }
msgbox, % ignored.HasKey("mumble.exe")
.HasKey()
。
hasValue
函数是一个不错的解决方案。我有些惊讶这个功能还没有成为AHK的一部分。 - monnef