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

我的VBScript函数的返回类型是什么?,vbscript,return-type,type-mismatch,Vbscript,Return Type,Type Mismatch,这个问题主要是为了更好地理解VBScript的功能。我认识到,我可以简单地进行一些转换,以了解我的代码期望得到什么,但在我的情况下,我想了解为什么需要进行转换或任何“变通方法”。为简单起见,以下是我的代码的基本思想: variable1 = 1 Public Function findSomethingInATextString(par1, par2) [...searching with a Do Until loop code here...] Result = 1

这个问题主要是为了更好地理解VBScript的功能。我认识到,我可以简单地进行一些转换,以了解我的代码期望得到什么,但在我的情况下,我想了解为什么需要进行转换或任何“变通方法”。为简单起见,以下是我的代码的基本思想:

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")
当我运行此命令时,会出现
类型不匹配
错误。我不明白为什么会这样
variable1
是一个整数,
findSomethingInAString()
返回一个整数。它们似乎是相同的数据类型

我在一个受限制的环境中工作,在那里我不能做很多调试(在这个程序中编写代码的速度非常慢…)。所以现在我不能说这是什么数据类型——我只知道它显然不是整数

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

使用最小脚本

Return
输出

cscript 36633603.vbs
…36633603.vbs(1,1)Microsoft VBScript运行时错误:类型不匹配:“return”
为了向自己证明,只要在VBScript中提到
return
,就会抛出类型不匹配错误

相信JosefZ的评论,VBScript通过指定函数名返回函数值。更好的方法是:阅读(在您尝试编写代码之前)

证据:

Function f1()
  f1 = 1
End Function

WScript.Echo f1(), TypeName(f1())
输出:

cscript 36633603.vbs
1整数
使用最小脚本

Return
输出

cscript 36633603.vbs
…36633603.vbs(1,1)Microsoft VBScript运行时错误:类型不匹配:“return”
为了向自己证明,只要在VBScript中提到
return
,就会抛出类型不匹配错误

相信JosefZ的评论,VBScript通过指定函数名返回函数值。更好的方法是:阅读(在您尝试编写代码之前)

证据:

Function f1()
  f1 = 1
End Function

WScript.Echo f1(), TypeName(f1())
输出:

cscript 36633603.vbs
1整数

这不是VBScript。在VBScript中,
Variant
是唯一的数据类型。请使用正确的语言对此进行标记。哼哼,如果您的伪代码应该是VBScript…VBScript中没有
Return
语句。函数通过在过程的一个或多个语句中为其名称赋值来返回值。使用
findSomethingInAString=Result
而不是
returnresult
,并在
Public Function findSomethingInAString(par1,par2)
oops中省略单词字符串。只是在参数部分加上“字符串”的习惯。我会编辑的。@Josef,我不得不读了几遍你的评论。我对脚本编写不是新手,我也不是那么有经验,但我想你是对的!那个返回语句把事情弄得一团糟。在过去的几天里,我在vba和vbs之间切换得太多了。我甚至没有注意到。非常感谢。你能写下来作为回答吗?这不是VBScript。在VBScript中,
Variant
是唯一的数据类型。请使用正确的语言对此进行标记。哼哼,如果您的伪代码应该是VBScript…VBScript中没有
Return
语句。函数通过在过程的一个或多个语句中为其名称赋值来返回值。使用
findSomethingInAString=Result
而不是
returnresult
,并在
Public Function findSomethingInAString(par1,par2)
oops中省略单词字符串。只是在参数部分加上“字符串”的习惯。我会编辑的。@Josef,我不得不读了几遍你的评论。我对脚本编写不是新手,我也不是那么有经验,但我想你是对的!那个返回语句把事情弄得一团糟。在过去的几天里,我在vba和vbs之间切换得太多了。我甚至没有注意到。非常感谢。你能写下来作为答案吗?谢谢@Ekkehard,这是一个有趣的测试。我确实相信JosefZ,也确实读过文档,那只是我用3种不同的语言为3个不同的项目编写代码的其中一天,我习惯于不假思索地编写
return
。谢谢@Ekkehard,这是一个有趣的测试。我相信JosefZ,也确实读过文档,那只是我用3种不同的语言为3个不同的项目编写代码的其中一天,我习惯于不假思索地编写
return