我的VBScript函数的返回类型是什么?

时间:2016-04-14 20:43:11

标签: vbscript return-type type-mismatch

这个问题主要是为了更好地理解VBScript的功能。我认识到我可以简单地做一些演员来了解我的代码会发生什么,但在我的情况下,我想了解为什么需要使用cast或任何“workaround”。为简单起见,这是我的代码的基本概念:

variable1 = 1

Public Function findSomethingInATextString(par1, par2)
    [...searching with a Do Until loop code here...]
    Result = 1
    If([par2 is found in par1]) Then
        Result = 0
    End If
    Return Result
End Function

variable1 = findSomethingInATextString("Hello World", "Hello")

当我运行此操作时,出现Type Mismatch错误。我不明白为什么会这样。 variable1是一个整数,findSomethingInAString()返回一个整数。它们似乎是相同的数据类型。

我在一个受限制的环境中工作,我无法进行太多的调试(在这个程序中代码很慢......)。所以目前我无法说出这是什么数据类型 - 我只知道它显然不是整数。

毕竟,为了确保我的问题清楚,我很想知道我的函数的返回类型是什么(如果有人碰巧知道),但是我真正的问题是 :为什么返回类型不与variable1匹配?

1 个答案:

答案 0 :(得分:2)

使用最小脚本

Return

输出

cscript 36633603.vbs
...36633603.vbs(1, 1) Microsoft VBScript runtime error: Type mismatch: 'return'

要向自己证明,只需在VBScript中提及return就会抛出类型不匹配错误。

相信JosefZ评论说VBScript通过分配函数的名称来返回函数值。更好:阅读docs(在尝试编写代码之前)。

证据:

Function f1()
  f1 = 1
End Function

WScript.Echo f1(), TypeName(f1())

输出:

cscript 36633603.vbs
1 Integer