Lotusscript - 使用 ArrayGetIndex 时类型不匹配
Lotusscript - Type mismatch when useing ArrayGetIndex
我有一个函数可以检查是否在变体中找到字符串:
Function checkIfValueIsInVariant (tempVariant As Variant, tempValue As String) As Boolean
Dim valueFound As Boolean
'zet standaard waarde op niet gevonden
valueFound = False
Print "Value : " + tempValue
If Not IsNull( ArrayGetIndex(tempVariant, tempValue) ) Then
'waarde is gevonden in variant dus zet op true
valueFound = true
End If
checkIfValueIsInVariant = valueFound
End Function
当我使用调试器检查代码时,我可以看到这些值:
tempVariant = "value" type = Variant
tempValue = "value" type = String
但是当它执行这一行时:
`If Not IsNull( ArrayGetIndex(tempVariant, tempValue) )` Then
我得到类型不匹配,我做错了什么?
Variant 在 LotusScript 中是一种非常糟糕的数据类型:它可以包含任何内容。 ArrayGetIndex 期望第一个参数为 An array or Variant containing an array.
。在您的示例中,tempvariant 是字符串类型的 Variant 而不是数组 --> 类型不匹配。
如果我不知道,如果我之前得到一个标量或数组,那么通常我会在我的代码中写这样的东西:
Dim varArray as Variant
Dim arrOneElement(0) as Variant
If not IsArray( tempVariant ) then
arrOneElement(0) = tempVariant
varArray = arrOneElement
Else
varArray = tempVariant
End If
If Not IsNull( ArrayGetIndex(varArray, tempValue) ) Then
这样我就可以(几乎)放任何我想要的东西,它会 return 正确的结果。
我有一个函数可以检查是否在变体中找到字符串:
Function checkIfValueIsInVariant (tempVariant As Variant, tempValue As String) As Boolean
Dim valueFound As Boolean
'zet standaard waarde op niet gevonden
valueFound = False
Print "Value : " + tempValue
If Not IsNull( ArrayGetIndex(tempVariant, tempValue) ) Then
'waarde is gevonden in variant dus zet op true
valueFound = true
End If
checkIfValueIsInVariant = valueFound
End Function
当我使用调试器检查代码时,我可以看到这些值:
tempVariant = "value" type = Variant
tempValue = "value" type = String
但是当它执行这一行时:
`If Not IsNull( ArrayGetIndex(tempVariant, tempValue) )` Then
我得到类型不匹配,我做错了什么?
Variant 在 LotusScript 中是一种非常糟糕的数据类型:它可以包含任何内容。 ArrayGetIndex 期望第一个参数为 An array or Variant containing an array.
。在您的示例中,tempvariant 是字符串类型的 Variant 而不是数组 --> 类型不匹配。
如果我不知道,如果我之前得到一个标量或数组,那么通常我会在我的代码中写这样的东西:
Dim varArray as Variant
Dim arrOneElement(0) as Variant
If not IsArray( tempVariant ) then
arrOneElement(0) = tempVariant
varArray = arrOneElement
Else
varArray = tempVariant
End If
If Not IsNull( ArrayGetIndex(varArray, tempValue) ) Then
这样我就可以(几乎)放任何我想要的东西,它会 return 正确的结果。