VBScript - 過程



什麼是函式?

函式是一組可重用的程式碼,可以在程式的任何地方呼叫。這樣就避免了重複編寫相同程式碼的需要。這將使程式設計師能夠將一個大型程式分解成許多小的、易於管理的函式。除了內建函式外,VBScript 還允許我們編寫使用者定義的函式。本節將向您解釋如何在 VBScript 中編寫自己的函式。

函式定義

在使用函式之前,我們需要定義該特定函式。在 VBScript 中定義函式最常見的方法是使用 Function 關鍵字,後跟一個唯一的函式名,它可能包含或不包含引數列表,以及一個帶有 End Function 關鍵字的語句,指示函式的結束。

基本語法如下所示:

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function Functionname(parameter-list)
            statement 1
            statement 2
            statement 3
            .......
            statement n
         End Function

      </script>
   </body>
</html>

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello()
            msgbox("Hello there")
         End Function

      </script>
   </body>
</html>

呼叫函式

要在指令碼中的其他位置呼叫函式,只需使用 Call 關鍵字編寫該函式的名稱即可。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello()
            msgbox("Hello there")
         End Function

         Call sayHello()
        
      </script>
   </body>
</html>

函式引數

到目前為止,我們已經看到了沒有引數的函式,但有一個功能是在呼叫函式時傳遞不同的引數。這些傳遞的引數可以在函式內部捕獲,並且可以在這些引數上進行任何操作。函式使用 Call 關鍵字進行呼叫。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello(name, age)
            msgbox( name & " is " & age & " years old.")
         End Function

         Call sayHello("Tutorials point", 7)

      </script>
   </body>
</html>

從函式返回值

VBScript 函式可以有一個可選的 return 語句。如果您想從函式返回值,則需要此語句。例如,您可以將兩個數字傳遞給一個函式,然後您可以期望該函式在您的呼叫程式中返回它們的乘積。

注意 - 函式可以返回多個值,這些值用逗號分隔,作為分配給函式名稱本身的陣列。

示例

此函式接受兩個引數並將它們連線起來,並在呼叫程式中返回結果。在 VBScript 中,值使用函式名從函式返回。如果您想返回兩個或多個值,則函式名將返回一個包含值的陣列。在呼叫程式中,結果儲存在 result 變數中。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function concatenate(first, last)
            Dim full
            full = first & last
            concatenate = full  'Returning the result to the function name itself
         End Function

      </script>
   </body>
</html>

現在,我們可以如下呼叫此函式:

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function concatenate(first, last)
            Dim full
            full = first & last
            concatenate = full  'Returning the result to the function name itself
         End Function
         ' Here is the usage of returning value from  function. 
         dim result
            result = concatenate("Zara", "Ali")
        msgbox(result)
      </script>
   </body>
</html>

子過程

子過程類似於函式,但有一些區別。

  • 子過程不返回值,而函式可能返回或不返回值。

  • 子過程可以不帶 call 關鍵字呼叫。

  • 子過程始終包含在 SubEnd Sub 語句中。

示例

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Sub sayHello()
            msgbox("Hello there")
         End Sub

      </script>
   </body>
</html>

呼叫過程

要在指令碼中的其他位置呼叫過程,只需使用或不使用 Call 關鍵字編寫該過程的名稱即可。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Sub sayHello()
            msgbox("Hello there")
         End Sub
         sayHello()

      </script>
   </body>
</html>

函式的高階概念

關於 VBScript 函式還有很多需要學習的地方。我們可以按值或按引用傳遞引數。請點選每個選項以瞭解更多資訊。

廣告