ASP中Sub和Function的区别说明
投稿:mdxy-dxy
SUB和FUNCTION有什么不同呢,他们的语法应该怎么构成?
Sub:过程;
Function:函数,可以带返回值
语法:
Sub SubName(参数1, 参数2,...)
....
End Sub
Function FunctionName(参数1, 参数2,...)
...
FunctionName = 返回值
End Function
调用方法:
Sub直接用 SubName 参数1, 参数2,...
Function如果不要返回值,用 FunctionName 参数1, 参数2,...
如果要返回值,则 Result = FunctionName(参数1, 参数2,...)
语法是这样,这是对的
Sub SubName(参数1, 参数2,...)
....
End Sub
Function FunctionName(参数1, 参数2,...)
...
FunctionName = 返回值
End Function
调用时:
sub 只能用:
SubName 参数1, 参数2,...
函数则:
变量=FunctionName (参数1, 参数2,...)
FunctionName 参数1, 参数2,...
上面均未讲出根本:
SUB与FUNCTION均可有返回值。所以首先要讲清返回方式:有两种,过程或函数返回,即分配与过程或函数同名的返回变量地址。function分配,但sub不分配。VB用此方式加以区分,VC则用VOID声明不用分配。即如p=aa()若aa()是sub则什么也得不到,还会报错。但函数则会得到数值。其次,参数返回,VB中缺省用地址传参,即能返回。但声明为BYVAL即值传参,则不可返回,所以,不存在灵活性的差别。比如函数function bb(a,b), 调用时可以bb m, n也可以p=bb(m,n). 实际,如果确认不会失败,才能用SUB,否则,必须要用FUNCTION以确认是否成功或取得返回值。所以编程,应少用SUB,少用 SubName 参数1, 参数2,...的调用方式。
sub是过程不需要返回值;function是函数,需要返回值,如下:
Function NameOfFunction(parameter1, parameter2) 'some code NameOfFunction = return value End Function Sub NameOfSubRoutine(parameter1, parameter2) 'some code... End Sub
除了function有返回一个值的区别外,在ASP中好像没有多大的区别,把sub写成FUNCTION好像效果一样。
sub无返回值
调用sub 可call sub
调用function 可 <%=function%>
通常可以用function代替一切,除了一些一定要用sub的——例如事件的触发要是(private sub xxx_OnYYY)。用function的好处是又返回值,对于你认为用sub就行的,用function的返回值就是用来告诉你程序是否有出错的。一般来说返回0表示成功,其他数值就是错误代。
vbscript中Function与Sub的区别
一、Function与Sub概述:
Sub(子过程): sub是Subroutines的缩写,它的意思是子程序,它是将一段具有某种特定功能的语句区块单独编写成一个独立的程序,给予特定名称 。
Function(函数):表示每个输入值对应唯一输出值的一种对应关系 ,具备 Sub 的功能。
二、Function与Sub异同
相同点:
1)Sub和Function都是 vbscript 的过程,
2)可以传递参数,
3)是业务操作或业务处理的封装,都可以被重复调用。
不同点:
1)Sub无返回值,而Function可以有返回值。
2)调用Sub 和 Function也不同
三、举例[引用之前网上看的一个例子]:
大家应该都知道的谈恋爱的过程。有些人只想知道他谈恋爱的过程(Call Sub)。有些人既想知道过程,又要知道最终结果有没有结婚(Call Function)
假设:谈恋爱这个过程,由给MM打电话、陪MM逛街、给MM送礼物等等动作组成。
那么,Sub 谈恋爱()和Function 谈恋爱()有什么不同呢?
1)Sub 谈恋爱
Sub 谈恋爱()
给MM打电话
陪MM逛街
给MM送礼物
End Sub
调用方法:因为Sub没有返回值,只要在代码中: Call 谈恋爱()
2)Function谈恋爱
Function 谈恋爱()
给MM打电话
陪MM逛街
给MM送礼物
If (mm愿意和他结婚) Then
谈恋爱 = 成功
Else
谈恋爱 = 失败
End If
End Function
调用方法:因为Function有返回值,所以可以把函数返回值赋给变量,只要在代码中:result = 谈恋爱()