function 和 sub 的区别是什么?

zdrone 2004-08-03 12:46:23
是不是有返回值的就用function?
没有返回值的就用sub?
sub和function中是不是都可以有参数传递的?
...全文
4121 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
daisy8675 2004-08-03
  • 打赏
  • 举报
回复
function有返回数值,sub没有
所有sub的时候需要call
function则直接写
HtSoft 2004-08-03
  • 打赏
  • 举报
回复
//function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有

同意楼上
BlueBeer 2004-08-03
  • 打赏
  • 举报
回复
function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有
helanshan 2004-08-03
  • 打赏
  • 举报
回复
我没的说了。。
dzffounder 2004-08-03
  • 打赏
  • 举报
回复
function 可以有也可以没有返回值,而sub是一定有返回值
熊孩子开学喽 2004-08-03
  • 打赏
  • 举报
回复
function是函数可以返回一个结果,而sub则没有返回值。
举个例子:
A=sin(3.14159)
sin()就是一个函数,它返回的结果值被赋予了变量A,只不过它是由VB自带的,而当遇到一些需要我们自己定义的算法时,并且经常需要用到的时候,我们就只能自己写一个函数了。
LOAD form1 
Load就是一个过程,它不会返回一个结果,它只是做一些事,它也是由VB自己带的,当我们要进行一些经常需要重复的动作时,就将它们定义为一个过程,以便反复调用。
warlord 2004-08-03
  • 打赏
  • 举报
回复
sub注重过程
function注重结果
adamcn 2004-08-03
  • 打赏
  • 举报
回复
同意各位的说法
efengxu 2004-08-03
  • 打赏
  • 举报
回复
学到东西了:)

computer17 2004-08-03
  • 打赏
  • 举报
回复
都有了我就不多说了
daisy8675 2004-08-03
  • 打赏
  • 举报
回复
这种说法不对

sub 可以用call方式调用,
也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用


//这样的说法是MS自己出的设计实务写的

国内对此一点都不注意,反正都能用是吧
LGYAN 2004-08-03
  • 打赏
  • 举报
回复
它们还有一个区别就是名字不一样,一个叫function,一个叫 Sub
itcoco 2004-08-03
  • 打赏
  • 举报
回复
//是不是有返回值的就用function?
没有返回值的就用sub?
sub和function中是不是都可以有参数传递的?

楼主的想法是正确的

但 northwolves(狼行天下) 提到了
Sub getthisbbs(ByRef x As String)
x = "csdn"
End Sub

这个sub 里按地址传值 间隔传值 作用同function 可以让我们学习下byref的用法
starsoulxp 2004-08-03
  • 打赏
  • 举报
回复
1.function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有
2.sub 可以用call方式调用,
也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
flyingZFX 2004-08-03
  • 打赏
  • 举报
回复
函数可以返回值,

过程不行,

tiaozaodejia 2004-08-03
  • 打赏
  • 举报
回复
严重支持楼上的说法!
应该是说得比较详细了!
northwolves 2004-08-03
  • 打赏
  • 举报
回复
二者都可传值:

function:

Function thisbbs() As String
thisbbs = "csdn"
End Function
Private Sub Command1_Click()
MsgBox thisbbs
End Sub


sub:

Sub getthisbbs(ByRef x As String)
x = "csdn"
End Sub
Private Sub Command2_Click()
Dim x As String
getthisbbs x
MsgBox x
End Sub
northwolves 2004-08-03
  • 打赏
  • 举报
回复
function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。


Sub 过程与Function 过程的区别:
1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。
2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。
3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。
4. 调用 Sub 过程有两种方法:
以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。
wangyy123 2004-08-03
  • 打赏
  • 举报
回复
function有返回数值,sub没有
所有sub的时候需要call
function则直接写
------------------------------
这种说法不对

sub 可以用call方式调用,
也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
vbman2003 2004-08-03
  • 打赏
  • 举报
回复
应用程序是由模块组成的,而模块含有事件过程和通用过程。过程分为两类:一类是Sub过程(也称子过程),无返回值;另一类是Function过程(也称函数过程),有返回值。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧