[VBScript] 程式設計教學:撰寫副常式 (subroutine) 和函式 (function)

【分享本文】
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email
【贊助商連結】

    在一般的程式設計術語中,函式 (function)、程序 (procedure)、副常式 (subroutine) 三者通常可交替使用,這三者皆代表一段可重覆使用的 (reusable) 程式碼區塊,只是不同程式語言會使用不同的名稱。然而,在 VBScript 中,副常式和函式兩者略有不同,撰寫程式碼時需注意。

    撰寫副常式 (Subroutine)

    在 VBScript 中,副常式 (subroutine) 使用 Sub 保留字;和一般的函式不同的地方在於副常式沒有回傳值 (return value) 且呼叫副常式時沒有括號。我們先前自製的 Assert 就是一個副常式:

    Assert 3 + 4 = 7, "It should be equal"
    
    ' Home-made assert for VBScript
    Sub Assert( boolExpr, strOnFail )
        If Not boolExpr Then
            Err.Raise vbObjectError + 99999, , strOnFail
        End If
    End Sub
    

    由於這些特性,呼叫副常式時很像在使用該語言本身的語法。

    撰寫函式 (Function)

    VBScript 的函式 (function) 比較接近一般程式語言中函式的概念,呼叫時需加括號,可回傳數值。建立函式使用 Function 保留字。以下是一個短例:

    Assert Cmp(3, 2) > 0, "It should be larger than 0"
    Assert Cmp(3, 4) < 0, "It should be less than 0"
    Assert Cmp(3, 3) = 0, "It should be 0"
    
    Function Cmp(a, b)
        Dim Result
    
        If a > b Then
            Result = 1
        ElseIf a < b Then
            Result = -1
        Else
            Resutl = 0
        End If
    	
        Cmp = Result
    End Function
    
    ' Home-made assert for VBScript
    Sub Assert( boolExpr, strOnFail )
        If Not boolExpr Then
            Err.Raise vbObjectError + 99999, , strOnFail
        End If
    End Sub
    

    VBScript 函式在撰寫時較特別的地方在於回傳值的部分,透過將函式名稱賦值的方式來回傳值,稍微注意一下其寫法即可。

    【分享本文】
    Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email
    【支持站長】
    Buy me a coffeeBuy me a coffee
    【贊助商連結】
    【分類瀏覽】