[AHK] v1 的 if...in 语句用 v2 如何实现?

比如想检查一个变量是否在列表中,原来可以很方便的
if Var in List
v2 光让参考 is 函数,看了半天也没看出怎么实现

因为 value1,value2,... 这种不通用所以就不支持了吧
现在是将这个声明为数组 []
contains的话将下面的等于表达式换成 InStr函数比较

list := [1, 2, 3, 4, "ss"]
s1 := "SS"
;函数方法
MsgBox(IsVarInArr(s1, list, false))
MsgBox(IsVarInArr(s1, list))

;临时方法
isIn := false
for i in list
{
    if i = s1
    {
        isIn := true
        break
    }
}
MsgBox(isIn)

IsVarInArr(item, arr, ignoreCase := true)
{
    if ignoreCase
    {
        for i in arr
            if item = i
                return true
    }
    else
    {
        for i in arr
            if item == i
                return true
    }
    return false
}
2 个赞

试了下ChatGPT, 和楼上回答一个思路但是简洁一些貌似

list := ["apple", "banana", "cherry"]
var := "banana"

if InStr(list, var)
{
    msgbox % "The variable '" . var . "' is in the list: " . list
}
else
{
    msgbox % "The variable '" . var . "' is not in the list: " . list
}

你这是不能运行的代码呀…
instr只接受字符串,你传数组干什么…
另外V2很少用%号了

感谢大佬赐教,不好意思回复晚了 :pray: :pray: