怎么理解Sub和Function之间的不同?

能给我写段代码表示其中的不同吗?
返回值是什么意思
我现在感觉用Function写的东西用Sub同样能写 没感觉其中的不同 也没理解返回值什么意思

Sub可以理解为执行一个过程,一个操作,(举例:我拍了下桌子)Function在执行完过程后,还要返回一个结果(举例:我拍了下桌子,结果:我手拍红了,疼的。)
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-11-06
语法是这样的
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,...的调用方式。
function可以当做是公式试用
第2个回答  2007-11-06
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好像效果一样。
第3个回答  2007-11-06
SUB是一个单纯过程
Function也是一个过程,但是它能返回执行这个过程取得的结果.

Sub子过程与Function函数过程有什么区别?
function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有 function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。Sub 过程与Function 过程的区别:1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” ...

怎么理解Sub和Function之间的不同?
Sub可以理解为执行一个过程,一个操作,(举例:我拍了下桌子)Function在执行完过程后,还要返回一个结果(举例:我拍了下桌子,结果:我手拍红了,疼的。)

sub过程和function过程最根本的区别
返回值不同,调用过程不同。1、返回值不同:Sub过程定义时无需定义返回值类型,而Function过程一般需要用“As数据类型“as子句决定函数过程返回值的类型,忽略As子句,则函数过程的类型为变体型。2、调用过程不同:调用Sub过程的是一个独立的语句,而function过程调用函数过程只是表达式的一部分。

sub和function根本区别
1. 返回值差异:Sub过程在定义时不需要指定返回值类型,而Function过程通常需要使用“As 数据类型”声明来指定函数返回值的类型。如果省略了As子句,函数过程的返回值类型将被默认为变体型。2. 调用方式区别:调用Sub过程是一个独立的语句,而Function过程通常作为表达式的一部分被调用。

Function和Sub各指什么,它们有什么不同?
Function过程和Sub过程很类似,但函数可以返回一个值。Function过程可经由调用者过程通过传递参数,例如常数、变量、或表达式等来调用。如果一个Function过程没有参数,它的Function语句必须包含一个空的圆括号。函数会在过程中的一个或多个语句中指定一个值给函数名称来返回值。Sub过程又被称为“子过程”或...

Excel 我谈function和sub的区别
个人认为function和sub最大区别在两点:1.function可以返回值,sub则不可以返回值;2.sub可以直接执行,但function需要调用才可以执行;使用时:1.如果需要过程名(function或sub的名字)能返回值,则必用function;2.如果需要直接执行(F5或链接到按钮控件),那么就要用sub了;...

Excel 我谈function和sub的区别
function顾名思义就是函数,他有入参,有返回值。sub顾名思义就是过程,他可以有入参,但绝对没有返回值。

sub过程与function过程最根本的区别是
sub过程与function过程最根本的区别是Sub过程不能返回值,而Function过程能返回值。

ASP中Sub和Function的区别说明
sub是子过程,function是函数,两者的最大区别是前者没有返回值,后者则是有返回值的(也可以不要返回值),除此之外,两者几乎就完全一样了。sub是B族语言(VB、VBS、VBScript、VBA等)独有的,C族语言(C、C++、VC、Java、Javascript等)是没有的。sub是古时候的Basic语言(上世纪八十年代诞生的,...

sub xxx | function xxx 有什么不同吗?
sub 是子程序,相当于一个重复调用的程序片断,不能传参,只能使用全局变量。而 function 是函数,可以传参,无须外部全局变量。

相似回答
大家正在搜