"Is" 和 "In" 的含义

Meaning of "Is" & "In"

VBScript中的isin是什么意思?因为我用UFT写的时候是蓝色的。

我可以使用它们 检查矩阵 中是否存在值 而无需循环 吗?因为这正是我要找的。我的意思是这样的:

If "Ahmed" is in Matrix() Then
    msgbox "He's in"
End If

如有疑问,请阅读 documentation. The Is 运算符用于检查两个对象引用(对象变量)是否指向同一对象:

Set sh1 = CreateObject("WScript.Shell")
Set sh2 = CreateObject("WScript.Shell")
Set sh3 = sh1
WScript.Echo "" & (sh1 Is sh2)        'Output: False
WScript.Echo "" & (sh1 Is sh3)        'Output: True

关键字 In 存在于 VBScript 中,但仅作为 For Each 循环的一部分:

Set fso = CreateObject("Scripting.FileSystemObject")
'"In" used in For Each loop.
For Each f In fso.GetFolder("C:\some\folder").Files
  WScript.Echo f.Name
Next

您可以使用 For Each 循环来检查数组(准确地说是一个数组维度)是否包含特定值:

For Each element In arr
  If element = refElement Then
    ...
  End If
Next

不过,我不知道有一种方法可以检查 VBScript 数组是否包含没有循环的特定元素(除非您将元素连接到字符串,然后使用 InStr 测试元素,它不适用于所有数据类型)。你可以用 Dictionary:

Set d = CreateObject("Scripting.Dictionary")
d.Add "a", True
d.Add "b", True
WScript.Echo "" & d.Exists("a")       'Output: True
WScript.Echo "" & d.Exists("c")       'Output: False

ArrayList:

Set al = CreateObject("System.Collections.ArrayList")
al.Add "a", True
al.Add "b", True
WScript.Echo "" & al.Contains("a")    'Output: True
WScript.Echo "" & al.Contains("c")    'Output: False

但是,使用不同的数据结构很可能需要更改其余代码。