Funções e procedimentos VBScript com exemplo

⚡ Resumo Inteligente

As funções e procedimentos do VBScript organizam o código em blocos reutilizáveis. Um procedimento Sub executa instruções sem retornar um valor, enquanto um procedimento Function retorna um valor atribuindo-o ao nome da função, e os argumentos são passados ​​usando ByRef ou ByVal.

  • 🧱 Code Reuso: Os procedimentos modularizam o código, tornando mais fácil escrevê-lo, depurá-lo e mantê-lo em scripts extensos.
  • 📤 Subprocedimento: Uma Sub executa um bloco de instruções entre Sub e End Sub, mas não retorna um valor.
  • 📥 Procedimento da função: Uma função retorna um valor atribuindo-o ao nome da função entre os parâmetros `Function` e `End Function`.
  • 📞 Ligando: Use a palavra-chave `call` para executar uma Sub e use o nome de uma função em uma expressão para obter seu resultado.
  • 🔁 Por referência vs. Por valor: ByRef permite que as alterações persistam após a chamada; ByVal funciona em uma cópia, portanto as alterações não persistem.
  • ⚙️ Passagem padrão: Por padrão, o VBScript passa argumentos por referência, a menos que você especifique ByVal.

Funções e procedimentos em VBScript

Procedimentos VBScript

Os procedimentos VBScript são usados ​​principalmente para organização e reutilização de código. Temos usado exemplos simples até agora, pois aqui o objetivo é aprender VBScript. Mas no cenário do mundo real, o código não é tão simples assim. Quando você tenta implementar algo útil, o código pode ficar mais complexo. Pode haver centenas de linhas estendendo-se por muitas páginas.

Se você não organizar o código adequadamente, todo o processo de codificação, depuração e gerenciamento do código se tornará muito complexo. Portanto, você deve organizar ou modularizar o código com cuidado para que ele se torne facilmente gerenciável.

Além disso, suponha que você tenha um conjunto de instruções que executa uma ação específica. Você deseja que a mesma ação seja repetida várias vezes. Então, por que você deveria escrever o mesmo código repetidamente? Usando técnicas eficazes, você pode tornar seu código reutilizável. Isso ajudará os desenvolvedores a organizar o código lindamente e os testadores a identificar bugs facilmente. Resumindo, a modularização e reutilização de código é muito importante para tornar o código mais poderoso, confiável e mais fácil de manter. Aí vêm os procedimentos em uma imagem.

Tipos de procedimentos em VBScript

Um procedimento é um bloco de código que idealmente executa uma única função. Um bloco de código que processa uma entrada ou manipula um arquivo é um bom exemplo de função. Existem dois tipos de procedimentos em VBScript.

  1. Subprocedimento: O subprocedimento não retorna um valor.
  2. Procedimento de função: O procedimento de função é usado se você deseja retornar um valor.

Subprocedimentos

Se quiser executar uma série de instruções sem retornar nenhum valor, você pode usar subprocedimentos.

Os subprocedimentos começam e terminam com instruções Sub e End Sub, respectivamente. Os subprocedimentos podem receber argumentos, mas não podem retornar um valor. Os subprocedimentos podem ou não receber informações.

Sub outputMessage()
document.write("Welcome")
End Sub

Apenas escrever este código não produzirá nada. Aqui você criou um procedimento Sub chamado outputMessage. Em seguida, você precisa ligar para ele.

chamar saídaMessage()

Combine esses dois conjuntos de códigos dentro tag like this.

<script type="text/vbscript">

Sub outputMessage()
document.write("Welcome")
End Sub
call outputMessage()
</script>

A saída deste código será

Subprocedimentos

Funções do VBScript

Se você deseja executar uma série de instruções e retornar um valor, precisará usar procedimentos de função, comumente conhecidos como função.

Os procedimentos de função começam e terminam com instruções Function e End Function respectivamente.

Um procedimento de função pode ou não receber entrada.

Os procedimentos de função retornam um valor atribuindo o valor ao seu nome.

<script type="text/vbscript">
Function findArea(radius)
   const pi=3.14
   area = pi*radius*radius
   findArea = area
End Function
document.write("The area of the circle when the radius is 20 is " & findArea(20) &"<br/>")
document.write("The area of the circle when the radius is 10 is " & findArea(10))

</script>

A saída deste código será

Funções do VBScript

Parâmetros ByRef e ByVal

Você pode passar argumentos VBScript para os procedimentos por referência ou por valor.

Se você não especificar nada ao chamar um procedimento, então os argumentos/argumentos serão passados ​​por referência por padrão.

Se as alterações feitas nos argumentos persistirem mesmo após o procedimento ser chamado, será necessário passar os argumentos VBScript por referência.

Quando um argumento é passado por valor, quaisquer alterações que o procedimento chamado faça no valor do variável não persista após o procedimento ser chamado.

As palavras-chave ByRef e ByVal são usadas para passar argumentos por referência e por valor respectivamente.

Para entender a diferença, primeiro execute o código fornecido a seguir e veja a saída.

Passo 1) Copie o código em seu editor

<script type="text/vbscript">
Function returnResult(ByRef value)
   value = value +1
   returnResult = value
End Function
Dim x
x=5
call returnResult(x)
document.write(x)
</script>

Passo 2) a saída é 6.

Passo 3) Altere a função returnResult (valor ByRef) para Função returnResult (valor ByVal)

Passo 4) Agora sua saída será 5.

Perguntas Frequentes

Use `Exit Sub` dentro de uma `Sub`, ou `Exit Function` dentro de uma `Function`, para sair do procedimento imediatamente antes do final. A execução então retorna à linha que o chamou.

Se você usar a palavra-chave `call`, coloque os argumentos entre parênteses. Se omitir `call`, não use parênteses em torno de múltiplos argumentos. Cometer esse erro é um erro comum de sintaxe em VBScript.

Sim. Uma Sub ou Função em VBScript pode chamar a si mesma, o que é chamado de recursão. Sempre inclua uma condição base que interrompa as chamadas, ou o script entrará em loop até que o espaço na pilha se esgote.

Sim. A IA consegue identificar declarações duplicadas, por exemplo.tracTransforme-os em uma Sub ou Função com os parâmetros corretos e atualize as chamadas. Isso torna os scripts mais curtos e fáceis de manter.

Sim. A IA pode. tracMostre como um valor muda com ByRef versus ByVal, apresente a saída para cada um e recomende qual usar com base em se o chamador deve ou não ver a mudança.

Resuma esta postagem com: