Como declaro um tipo de variável vbscript? [duplicado]
O seguinte gera um erro com ou sem Option Explicitconjunto.
Crie um arquivo chamado dim.vbs.
Dim a as String
Em seguida, execute no prompt de comando.
cscript dim.vbs
Erro de compilação do Microsoft VBScript: fim de instrução esperado
Existe uma maneira de forçar o tipo de variável com ou sem Option Explicitconjunto?
Respostas
Como declaro um tipo de variável em vbscript?
Você não pode.
- O VBScript não oferece suporte ao conceito de variáveis digitadas estaticamente.
- VBScript é uma linguagem de front-end para o ambiente ActiveScripting do Windows.
- Este ambiente é hospedado por
cscript(para a linha de comando) ewscript(quando você não quiser que uma janela CMD apareça). - O ambiente também é hospedado pelo IIS para Classic ASP
.asp/.asae anteriormente pelo Internet Explorer (antes do Internet Explorer 9), onde era a base para seu mecanismo JavaScript.- "JScript" é a marca (ou dialeto) do JavaScript também compatível com ActiveScripting: tanto o VBScript quanto o JScript compartilham semelhanças no que são capazes.
- Este ambiente é hospedado por
- ActiveScripting se destina a trabalhar com objetos COM.
A sintaxe do VBScript é um subconjunto do VBA e é amplamente mutuamente inteligível porque o VBA digitará implicitamente variáveis sem uma definição de tipo estático como um Variantobjeto COM , que é aproximadamente equivalente (e possivelmente idêntico, eu esqueci) ao tipo subjacente real usado pelas variáveis do VBScript.
(Internamente o VBScript é digitado: caso contrário, seria impossível para o VBScript usar COM. Você pode dizer que há alguma digitação por baixo do capô por causa de como você precisa usar as palavras Set- Letchave e com base no tipo esperado de um valor, ou como só pode ser usado Constem VBScript com certos tipos de valor literal e assim por diante).
Por analogia: você tem carteira de motorista para um carro de passageiros (você sabe escrever VBA) e você decide dirigir uma empilhadeira (VBScript) - porque você sabe como dirigir um carro de passageiros e porque os controles / interface parecem o mesmo (tem um volante, um freio de mão, um banco do motorista, um velocímetro) que suas habilidades como motorista de carro de passeio significam que você deve saber dirigir uma empilhadeira imediatamente e sem problemas. Você não pode e não vai: as empilhadeiras operam de maneira muito diferente (por exemplo, direção da roda traseira, tração elétrica e muitas regiões exigem licenciamento especializado para motoristas de empilhadeira por esse motivo).
Embora a sua não possível declarar variáveis com tipos específicos em VBS como faria em VB ou VBA, não estão várias funções de conversão que irão garantir que sua variável contêm o tipo de dados que você deseja.
CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr
por exemplo
Option Explicit
Dim x
x = "1"
WScript.Echo TypeName(x)
x = CInt("1")
WScript.Echo TypeName(x)
x = CInt(1)
WScript.Echo TypeName(x)
produz
String
Integer
Integer
Apenas tome cuidado, pois passar valores não convertíveis para uma função de conversão pode causar erros de incompatibilidade de tipo. Por exemplo, uma string como "x9x" não pode ser convertida em um número, então CInt ("x9x") causará um erro de tempo de execução que interrompe a execução.