asp中function与Sub的区别

sub和function的区别 

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好像效果一样。

如下为两个具体例子:

<%function test(a,b)
 test = a * b
end function

a = 12
b = 14
c = test(a, b)
'这里的变量c就是函数处理后的结果,也就是 12×14 的值,你可以在程序中继续使用变量c进行其它运算。
%>
 

<%
'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)
%>

本博客所有文章如无特别注明均为原创。作者:ok12复制或转载请以超链接形式注明转自 成功志
原文地址《asp中function与Sub的区别
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)