欢迎各位兄弟 发布技术文章
这里的技术是共享的
有人说 function 好,因为它在解释的过程中是跳过的,而sub不同在解析的过程是要解析的? 是不是? 大虾们!
楼上的那个解释也是忽悠人的。所举的例子,function能写成函数来计算,sub同样也能计算啊。sub和function如果只是当做函数来使用的情况下,它们二者间是没有任何区别的,用哪个都是一样的。以前有人就这个问题打过一个比方,我认为非常的恰当。比如说谈恋爱,有些人只想知道谈恋爱的过程(call sub),而有些人呢既想知道这个过程,还想知道结果,也就是他们有没有结婚(call function)假设谈恋爱的过程由给MM打电话、陪MM逛街、给MM送礼物等动作组成那么sub 谈恋爱()和function 谈恋爱()有什么区别呢?Sub 谈恋爱() 给MM打电话 陪MM逛街 给MM送礼物 End Sub Function 谈恋爱() 给MM打电话 陪MM逛街 给MM送礼物 If (mm愿意和他结婚) Then 谈恋爱 = 成功 Else 谈恋爱 = 失败 End If End Function在调用的时候,它们也是有区别的。由于SUB没有返回值,所以直接 Call 谈恋爱()就可以了。而function有返回值,所以可以把它的返回值赋给变量dim strstr = 谈恋爱() 同时由于function有返回值,所以它在必要的情况下也可以直接进行运算,而sub是不能的。
正确答案
返回值可以给其它变量赋值,比如有这么一个函数:
function test(a,b)
test = a * b
end function
a = 12
b = 14
c = test(a, b)
这里的变量c就是函数处理后的结果,也就是 12×14 的值,你可以在程序中继续使用变量c进行其它运算。
PS: TO喜庆旺宝
ASP的语法不是那么严谨,所以sub可以带参数,并且sub并非必须用call才能调用的。
<%
dim a,b,c
sub test(x, y)
c = x * y
end sub
a = 12
b = 14
test a, b '相当于 “call test(a, b)”,在不使用Call时不能带括号
response.write(c)
%>
来自 http://zhidao.baidu.com/link?url=t3Hr6nlMqNtyGgiR_X94D2TBxwdmfOH-EjMwck28r-LG-On5O1EJzM0oESTXEK9f7GMtTlOCFg_CJDFjIuxnla