Declaración de constantes
OpenOffice Basic admite la declaración de constantes. Las constantes, al igual que las variables, son contenedores de datos, pero su valor no puede ser cambiado a lo largo del programa; permanece constante.
Las reglas de nombrado de las constantes son las mismas que se aplican para nombrar a las variables.
Las constantes se pueden declarar:
Las constantes se declaran con la sentencia
Const <NombreDeConstante>[ As <TipoDeConstante>] = <ValorDeLaConstante>
Las constantes se suelen utilizar para utilizar valores de uso repetitivo a lo largo del código, o para que el código sea más legible.
Si no se define el tipo de constante, se asigna el tipo Variant.
Const Saludo as string = "Hola" Const FechaInicial as date = "31/01/2012" Const Pi = 3.14159265358979 Const Pix2 = Pi * 2 Const Pi2 = Pi * Pi Const PiTxt = Saludo & " El valor de Pi es " & "3,1415..." Const Uno as integer = 1 Const VERDADERO as boolean = True Const FALSO as boolean = False
Se pueden definir constantes con un valor resultado de realizar operaciones sencillas con valores y cadenas, pero no se pueden utilizar funciones ni subrutinas en su declaración. Por ello, esta expresión no será admitida
Const INTRO = Chr(13)
Como puedes ver en nuestro ejemplo, sí que son aceptadas las expresiones que calculan las constantes Pi al cuadrado (Pi2) y dos por Pi (Pix2) operando con la constante ya definida Pi. También hemos podido declarar la constante PiTxt operando con un texto y la constante Saludo, pero no se admite utilizar la constante Pi que no es de tipo texto, por lo que hemos tenido que escribir el valor como texto.
Si se define una constante de tipo Date, el valor se expresará encerrado entre comillas dobles ", y no entre almohadillas # como ocurre en otros lenguajes BASIC.
Declaración de constantes a nivel de módulo
Podemos declarar constantes a nivel de módulo, declarando éstas después de las opciones de compilador y antes de cualquier función o subrutina.
REM ***** BASIC ***** Option Explicit Const VERDADERO as boolean = True Const FALSO as boolean = False Const Pi = 3.14159265358979 Sub MiSubrutina() as string End Sub
Cualquier constante declarada a nivel de módulo será visible por todas las funciones y subrutinas de ese módulo.
Solo será visible en ese módulo (salvo que se declare como pública).
Declaración de constantes a nivel de subrutina o función
Podemos declarar constantes a nivel de subrutina o función, declarando éstas después de la declaración de la subrutina o función, y antes de su finalización con End Sub o End Function, según corresponda, y siempre antes de utilizar la constante, por lo que es recomendable situarlas al principio, justo tras la declaración de la subrutina o función.
REM ***** BASIC ***** Option Explicit Const Saludo as string = "Hola" Sub MiSubrutina() Const FechaInicial as date = "31/01/2012" MsgBox Saludo MsgBox "Han transcurrido " & ( date() - cDate(FechaInicial)) & _ " días desde el " & FechaInicial End Sub
Cualquier constante declarada a nivel de función o subrutina será visible sólo dentro de la misma (salvo que se declare como pública). Si el nombre coincide con una constante o variable declarada a nivel de módulo, o pública, la constante de la función o subrutina eclipsará a las anteriores, por lo que no podremos acceder a ellas.