Function QTP/VBA/VB6中的函数和过程

Function QTP/VBA/VB6中的函数和过程,function,procedure,Function,Procedure,函数和过程的区别是什么?从返回值开始 因为函数也可以用作过程,如果你不返回任何值,那么区别是什么…那么函数的用途是什么? 请指定一个我们可以使用函数和过程的场景???由于您的标题指定了VBA和VB6,我将参考这些语言使用的子程序类型。VBA和VB6对返回值的子例程使用函数,对不返回值的子例程使用Sub。当然,可以对所有子例程使用函数,而忽略返回值。与C++和许多其他语言不同,不需要从VB函数返回值。由于VB会自动将所有变量初始化为数字类型的默认值零、布尔值的默认值为False、字符串的默认值为空

函数和过程的区别是什么?从返回值开始 因为函数也可以用作过程,如果你不返回任何值,那么区别是什么…那么函数的用途是什么?
请指定一个我们可以使用函数和过程的场景???

由于您的标题指定了VBA和VB6,我将参考这些语言使用的子程序类型。VBA和VB6对返回值的子例程使用函数,对不返回值的子例程使用Sub。当然,可以对所有子例程使用函数,而忽略返回值。与C++和许多其他语言不同,不需要从VB函数返回值。由于VB会自动将所有变量初始化为数字类型的默认值零、布尔值的默认值为False、字符串的默认值为空等,因此任何未显式返回值的函数都将返回其默认值,您可以忽略该值。例如:

Function MyFunc() As Long
    ' Nothing here
End Function
此函数将返回值零

所以,虽然可以使用函数代替Sub,只需忽略返回值,但这不是一个好的编程实践。代码的其他用户会认为您选择了Function而不是Sub,因为您打算返回一些有意义的内容,并且可能会惊讶地发现您根本没有返回任何内容

使用函数vs Sub时,由于在调用堆栈上传递的额外参数值(返回值)可能会对性能造成轻微影响