Sintaxis Básica
Para crear una variable se utiliza Dim seguido del nombre de la variable, As y el de la variable. Por ejemplo: Instanciación Explicita
Cuando conocemos de antemano el tipo de información que se almacenará en una variable y la definimos en torno a este, se le llama instanciación explicita porque se está expresando explicitamente cual es el tipo de dato que se recibirá.
Sub Main
Dim x As Integer
x = 5
End Sub
Instanciación Implicita
El lenguaje tiene la funcionalidad de permitir que una variable sea utilizada sin haber sido previamente definida. Esto quiere decir que la intención del código anterior puede funcionar de esta forma también:
Al hacer referencia a la variable x, que aun no ha sido definida, se interpretará definirla implicitamente a partir del tipo del valor asignado (5) en este caso tipo Integer.
Se puede obtener el tipo de un campo declarado de forma implicita a través de la función TypeName(). Asimismo, se puede obtener el código enumerativo correspondiente a través de la función VarType().
Contenedor Universal
La instanciación implicita es una comodidad enorme por 2 puntos importantes:
Permite ahorrarnos el paso de declarar la variable Permite la generalización de un bloque de código agnóstico al tipo de dato que maneja. Adicionalmente, la instanciación implicita permite la adaptación de las variables a distintos tipos. Por ejemplo:
Sub Main
x = 5
x = "luis"
End Sub
La variable x se define implicitamente como Integer y luego se redefine como String al asignarse el nuevo valor de este tipo. Esto no contradice la regla de que una variable no puede cambiar su tipo debido a que esta flexibilidad es una ilusión permitida por el tipo de dato Variant.
Variant es un tipo de dato que permite almacenar cualquier tipo de dato, cambiando de tipo según las asignaciones que se realizan sobre él.
La instanciación implicita define una variable como tipo Variant, por lo cual el código
realmente implementa:
Desventajas y Riesgos
Espacio Consumido
A pesar de las ventajas presentadas, es importante señalar que este tipo de dato consume más espacio que los tipos nativos:
Arreglos: 12 bytes más que el arreglo Errores Tipográficos
Además de esta desventaja, la declaración implicita trae un riesgo para la redacción del código debido a que el interprete no podrá dar feedback de errores tipograficos en la referencia a las variables. Por ejemplo:
Sub Main
valor = 5
vlaor = valor + 1
msgbox valor
End Sub
En este caso hay un error tipográfico al intentar referirse a la variable valor pero en su lugar se interpreta vlaor como una nueva variable, en consecuencia obteniendo resultados ineseperados.
Deshabilitar la Instanciación Implicita
En IDEAScript se puede configurar el script para que solo se permitan declaraciones explicitas a través de Option Explicit.
Option Explicit
Sub Main
Dim valor As Integer
valor = 5
vlaor = valor + 1
msgbox valor
End Sub
De esta forma se detectará el error tipográfico como error de compilación, ayudando a asegurar la calidad del código.