ASP中Sub和Function的區(qū)別說(shuō)明
SUB和FUNCTION有什么不同呢,他們的語(yǔ)法應(yīng)該怎么構(gòu)成?
Sub:過(guò)程;
Function:函數(shù),可以帶返回值
語(yǔ)法:
Sub SubName(參數(shù)1, 參數(shù)2,...)
....
End Sub
Function FunctionName(參數(shù)1, 參數(shù)2,...)
...
FunctionName = 返回值
End Function
調(diào)用方法:
Sub直接用 SubName 參數(shù)1, 參數(shù)2,...
Function如果不要返回值,用 FunctionName 參數(shù)1, 參數(shù)2,...
如果要返回值,則 Result = FunctionName(參數(shù)1, 參數(shù)2,...)
語(yǔ)法是這樣,這是對(duì)的
Sub SubName(參數(shù)1, 參數(shù)2,...)
....
End Sub
Function FunctionName(參數(shù)1, 參數(shù)2,...)
...
FunctionName = 返回值
End Function
調(diào)用時(shí):
sub 只能用:
SubName 參數(shù)1, 參數(shù)2,...
函數(shù)則:
變量=FunctionName (參數(shù)1, 參數(shù)2,...)
FunctionName 參數(shù)1, 參數(shù)2,...
上面均未講出根本:
SUB與FUNCTION均可有返回值。所以首先要講清返回方式:有兩種,過(guò)程或函數(shù)返回,即分配與過(guò)程或函數(shù)同名的返回變量地址。function分配,但sub不分配。VB用此方式加以區(qū)分,VC則用VOID聲明不用分配。即如p=aa()若aa()是sub則什么也得不到,還會(huì)報(bào)錯(cuò)。但函數(shù)則會(huì)得到數(shù)值。其次,參數(shù)返回,VB中缺省用地址傳參,即能返回。但聲明為BYVAL即值傳參,則不可返回,所以,不存在靈活性的差別。比如函數(shù)function bb(a,b), 調(diào)用時(shí)可以bb m, n也可以p=bb(m,n). 實(shí)際,如果確認(rèn)不會(huì)失敗,才能用SUB,否則,必須要用FUNCTION以確認(rèn)是否成功或取得返回值。所以編程,應(yīng)少用SUB,少用 SubName 參數(shù)1, 參數(shù)2,...的調(diào)用方式。
sub是過(guò)程不需要返回值;function是函數(shù),需要返回值,如下:
Function NameOfFunction(parameter1, parameter2) 'some code NameOfFunction = return value End Function Sub NameOfSubRoutine(parameter1, parameter2) 'some code... End Sub
除了function有返回一個(gè)值的區(qū)別外,在ASP中好像沒(méi)有多大的區(qū)別,把sub寫成FUNCTION好像效果一樣。
sub無(wú)返回值
調(diào)用sub 可call sub
調(diào)用function 可 <%=function%>
通常可以用function代替一切,除了一些一定要用sub的——例如事件的觸發(fā)要是(private sub xxx_OnYYY)。用function的好處是又返回值,對(duì)于你認(rèn)為用sub就行的,用function的返回值就是用來(lái)告訴你程序是否有出錯(cuò)的。一般來(lái)說(shuō)返回0表示成功,其他數(shù)值就是錯(cuò)誤代。
vbscript中Function與Sub的區(qū)別
一、Function與Sub概述:
Sub(子過(guò)程): sub是Subroutines的縮寫,它的意思是子程序,它是將一段具有某種特定功能的語(yǔ)句區(qū)塊單獨(dú)編寫成一個(gè)獨(dú)立的程序,給予特定名稱 。
Function(函數(shù)):表示每個(gè)輸入值對(duì)應(yīng)唯一輸出值的一種對(duì)應(yīng)關(guān)系 ,具備 Sub 的功能。
二、Function與Sub異同
相同點(diǎn):
1)Sub和Function都是 vbscript 的過(guò)程,
2)可以傳遞參數(shù),
3)是業(yè)務(wù)操作或業(yè)務(wù)處理的封裝,都可以被重復(fù)調(diào)用。
不同點(diǎn):
1)Sub無(wú)返回值,而Function可以有返回值。
2)調(diào)用Sub 和 Function也不同
三、舉例[引用之前網(wǎng)上看的一個(gè)例子]:
大家應(yīng)該都知道的談戀愛(ài)的過(guò)程。有些人只想知道他談戀愛(ài)的過(guò)程(Call Sub)。有些人既想知道過(guò)程,又要知道最終結(jié)果有沒(méi)有結(jié)婚(Call Function)
假設(shè):談戀愛(ài)這個(gè)過(guò)程,由給MM打電話、陪MM逛街、給MM送禮物等等動(dòng)作組成。
那么,Sub 談戀愛(ài)()和Function 談戀愛(ài)()有什么不同呢?
1)Sub 談戀愛(ài)
Sub 談戀愛(ài)()
給MM打電話
陪MM逛街
給MM送禮物
End Sub
調(diào)用方法:因?yàn)镾ub沒(méi)有返回值,只要在代碼中: Call 談戀愛(ài)()
2)Function談戀愛(ài)
Function 談戀愛(ài)()
給MM打電話
陪MM逛街
給MM送禮物
If (mm愿意和他結(jié)婚) Then
談戀愛(ài) = 成功
Else
談戀愛(ài) = 失敗
End If
End Function
調(diào)用方法:因?yàn)镕unction有返回值,所以可以把函數(shù)返回值賦給變量,只要在代碼中:result = 談戀愛(ài)()
相關(guān)文章
javascript實(shí)現(xiàn)input file上傳圖片預(yù)覽效果
這篇文章主要介紹了javascript實(shí)現(xiàn)input file上傳圖片預(yù)覽效果,感興趣的小伙伴們可以參考一下2015-12-12微信小程序Error:Fail?to?open?IDE問(wèn)題的解決方法
今天學(xué)習(xí)小程序時(shí)無(wú)法通過(guò)HBuilderX運(yùn)行微信小程序,查了相關(guān)資料后解決了,下面這篇文章主要給大家介紹了關(guān)于微信小程序Error:Fail?to?open?IDE問(wèn)題的解決方法,需要的朋友可以參考下2023-04-04uniapp小程序點(diǎn)擊輸入框時(shí)阻止彈出軟鍵盤的幾種解決方案
在寫項(xiàng)目時(shí)候需要在表單里面加一個(gè)picker選擇器,但選擇input的時(shí)候軟鍵盤與選擇器會(huì)同時(shí)彈出,下面這篇文章主要給大家介紹了關(guān)于uniapp小程序點(diǎn)擊輸入框時(shí)阻止彈出軟鍵盤的幾種解決方案,需要的朋友可以參考下2024-02-02JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配
所謂貪婪匹配就是匹配重復(fù)字符是盡可能多的匹配,非貪婪匹配就是盡可能少的匹配,下面通過(guò)一個(gè)例子給大家分享JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配,感興趣的朋友參考下吧2017-09-09JavaScript中Number對(duì)象的toFixed() 方法詳解
下面小編就為大家?guī)?lái)一篇JavaScript中Number對(duì)象的toFixed() 方法詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09原生javascript單例模式的應(yīng)用實(shí)例分析
這篇文章主要介紹了原生javascript單例模式的應(yīng)用,結(jié)合實(shí)例形式分析了JavaScript單例模式的基本功能、原理、應(yīng)用及操作注意事項(xiàng),需要的朋友可以參考下2020-02-02Electron實(shí)現(xiàn)應(yīng)用打包、自動(dòng)升級(jí)過(guò)程解析
這篇文章主要介紹了Electron實(shí)現(xiàn)應(yīng)用打包、自動(dòng)升級(jí)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07JS之延時(shí)器和定時(shí)器執(zhí)行示例詳解
這篇文章主要為大家介紹了JS之延時(shí)器和定時(shí)器執(zhí)行示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07