VB sub和function过程的区别
Functionfun(xAsInteger)x=x+1fun=xEndFunctionPrivateSubForm_Click()DimaAsInteger,yAsIn...
Function fun(x As Integer)
x = x + 1
fun = x
End Function
Private Sub Form_Click()
Dim a As Integer, y As Integer
a = 3
y = fun(a)
Print a
End Sub
Function fun(x As Integer)
x = x + 1
End Function
Private Sub Form_Click()
Dim a As Integer
a = 3
fun(a)
Print a
End Sub
我可不可以这样理解过程?
y = fun(a) fun返回的值赋给Y 所以他可以进行运算
fun(a) 而下面这个只是调用了过程,没有返回值所以不进行运算?我这样理解对吗? 展开
x = x + 1
fun = x
End Function
Private Sub Form_Click()
Dim a As Integer, y As Integer
a = 3
y = fun(a)
Print a
End Sub
Function fun(x As Integer)
x = x + 1
End Function
Private Sub Form_Click()
Dim a As Integer
a = 3
fun(a)
Print a
End Sub
我可不可以这样理解过程?
y = fun(a) fun返回的值赋给Y 所以他可以进行运算
fun(a) 而下面这个只是调用了过程,没有返回值所以不进行运算?我这样理解对吗? 展开
4个回答
展开全部
没有
sub没有返回值
function有返回值
比如
sub a(num as integer)
end sub
那么你不能dim s:s = a(123)
而如果
function a(num as integer)
end function
你就可以
dim s:s = a(123)
返回值:
如果sub要返回只能通过变量
如
sub a(num as integer)
num = num + 1
end sub
其他地方:dim s:s = 0:a(s):msgbox "now s="&s
这里a(s)把s的内存地址传进了sub,然后sub里面对这个num=num+1就相当于s=s+1了。
如果用function则可以写成这样:
function a(num as integer)
num = num + 1
a = num
end function
其中a=num这里a就是过程名
外部使用:
dim s:s = 0:a(s):msgbox "now s=" & s:s = a(s):msgbox "now s=" & s
call a(s):function也具有传内存地址的功能,当然function还有返回值:s = a(s)。
具体返回值类型:
[Private | Public] Function 函数名字 (参数) As 返回值类型
说白了 sub是一个过程 给了它内容不能直接返回一个内容的,只能间接;而function是一个函数,例如数学中函数y=kx,其中输入x那么y就是kx的值,这里也一样,有返回值(如把y=2x写成VB的函数就是:
function y(x as integer) as integer
y = 2x
end function
sub没有返回值
function有返回值
比如
sub a(num as integer)
end sub
那么你不能dim s:s = a(123)
而如果
function a(num as integer)
end function
你就可以
dim s:s = a(123)
返回值:
如果sub要返回只能通过变量
如
sub a(num as integer)
num = num + 1
end sub
其他地方:dim s:s = 0:a(s):msgbox "now s="&s
这里a(s)把s的内存地址传进了sub,然后sub里面对这个num=num+1就相当于s=s+1了。
如果用function则可以写成这样:
function a(num as integer)
num = num + 1
a = num
end function
其中a=num这里a就是过程名
外部使用:
dim s:s = 0:a(s):msgbox "now s=" & s:s = a(s):msgbox "now s=" & s
call a(s):function也具有传内存地址的功能,当然function还有返回值:s = a(s)。
具体返回值类型:
[Private | Public] Function 函数名字 (参数) As 返回值类型
说白了 sub是一个过程 给了它内容不能直接返回一个内容的,只能间接;而function是一个函数,例如数学中函数y=kx,其中输入x那么y就是kx的值,这里也一样,有返回值(如把y=2x写成VB的函数就是:
function y(x as integer) as integer
y = 2x
end function
展开全部
function是函数
函数可以带返回值,
返回值当然要定义类型
所以要多一个as
数据类型
说到返回值
我相信你知道函数是什么意思
就像数学中的函数F(X)
给定X之后
函数就会求得一个值,这个值返回给调用的地方
就叫做返回值
而sub是过程
过程不能带返回值
函数可以带返回值,
返回值当然要定义类型
所以要多一个as
数据类型
说到返回值
我相信你知道函数是什么意思
就像数学中的函数F(X)
给定X之后
函数就会求得一个值,这个值返回给调用的地方
就叫做返回值
而sub是过程
过程不能带返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SUB没有返回值
而Function 做为一个函数使用,则有返回值. 当用CALL调用时..没有返回值
而Function 做为一个函数使用,则有返回值. 当用CALL调用时..没有返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Function称为函数
Sub称为过程
函数可以有返回值,把处理结果直接赋值给函数本身
比如楼主问题里:fun=x,就是把结果直接赋值给函数!这就是函数的返回值!
函数在使用时,不能单独使用(极个别除外)!
比如,print fun(a),前面添加了输出语句!或者y=fun(a),将函数返回值赋值给变量y!所以函数返回值就如同变量一样!
当然如果你写一个没有返回值的函数,那它其实就跟sub一样,是个过程!
过程没有返回值,只能对数据进行处理,需要另外通过变量来传递处理后的数据!
而且过程可以单独使用!
Sub称为过程
函数可以有返回值,把处理结果直接赋值给函数本身
比如楼主问题里:fun=x,就是把结果直接赋值给函数!这就是函数的返回值!
函数在使用时,不能单独使用(极个别除外)!
比如,print fun(a),前面添加了输出语句!或者y=fun(a),将函数返回值赋值给变量y!所以函数返回值就如同变量一样!
当然如果你写一个没有返回值的函数,那它其实就跟sub一样,是个过程!
过程没有返回值,只能对数据进行处理,需要另外通过变量来传递处理后的数据!
而且过程可以单独使用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询