ASP中Sub和Function的区别说明

 更新时间:2020年08月30日 13:01:52   投稿:mdxy-dxy  
主要的区别是有返回值,一般sub是用来调用大量的内容的时候用sub,对于需要计算并需要返回值的时候用function,多用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好像效果一样。

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 = 谈恋爱()

相关文章

  • javascript中window.open在原来的窗口中打开新的窗口(不同名)

    javascript中window.open在原来的窗口中打开新的窗口(不同名)

    本文给大家介绍使用window.open在原来的窗口中打开新的窗口,涉及到win.open新窗口相关知识,对本文感兴趣的朋友参考下
    2015-11-11
  • 微信小程序实现团购或秒杀批量倒计时

    微信小程序实现团购或秒杀批量倒计时

    这篇文章主要为大家详细介绍了微信小程序实现团购或秒杀批量倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 微信小程序wx:for 的使用及wx:key绑定两种方式

    微信小程序wx:for 的使用及wx:key绑定两种方式

    wx:for是微信小程序中的一个列表渲染指令,用于循环渲染一个数组或对象中的数据,它类似于JavaScript中的for循环,可以根据数据的长度自动渲染相应的列表项,本文给大家介绍微信小程序wx:for 的使用及wx:key绑定两种方式,感兴趣的朋友一起看看吧
    2023-12-12
  • JavaScript伪数组用法实例分析

    JavaScript伪数组用法实例分析

    这篇文章主要介绍了JavaScript伪数组用法,结合实例形式分析了伪数组的概念、功能、定义及简单使用方法,需要的朋友可以参考下
    2017-12-12
  • js无痛刷新Token的实现

    js无痛刷新Token的实现

    本文主要介绍了js无痛刷新Token的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 详解TypeScript映射类型和更好的字面量类型推断

    详解TypeScript映射类型和更好的字面量类型推断

    这篇文章主要介绍了TypeScript映射类型和更好的字面量类型推断,对TS感兴趣的同学,一定要看一下
    2021-05-05
  • 微信jssdk踩坑之签名错误invalid signature

    微信jssdk踩坑之签名错误invalid signature

    这篇文章主要介绍了微信jssdk踩坑之签名错误invalid signature,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • underscore 防抖技巧学习示例

    underscore 防抖技巧学习示例

    这篇文章主要为大家介绍了underscore 防抖技巧学习示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • JavaScript的parseInt 取整使用

    JavaScript的parseInt 取整使用

    JavaScript 是弱类型语言, 为了保证数值的有效性, 在处理数值的时候, 我们可以对数值字符串进行强行转换. 如 parseInt 取整和 parseFloat 取浮点数
    2011-05-05
  • ECharts formatter属性设置的3种方法(字符串模板,函数模板,回调函数)

    ECharts formatter属性设置的3种方法(字符串模板,函数模板,回调函数)

    formatter有两种写法,一种字符串模板,另一种是回调函数,下面这篇文章主要给大家介绍了关于ECharts formatter属性设置的3种方法,分别是字符串模板,函数模板,回调函数,需要的朋友可以参考下
    2023-02-02

最新评论