Tipos simples
El lenguaje permite valores de los siguientes tipos simples:
- Números
- Cuerdas
- Booleano
- Cero
- Otros tipos
Números
Todos los números (enteros pares) están representados por valores de coma flotante IEEE 754. Los enteros de hasta 2 ^ 54 tienen representaciones exactas. Los valores numéricos se pueden representar mediante:
- Números enteros decimales con signo y sin signo (ejemplos: 10, -5)
- Números reales con puntos decimales (10,5, 3,14159)
- Números reales con exponentes (1.0e+10)
- Hexadecimales (0xff0000)
Las expresiones de directiva Citrix ADC tienen tres tipos numéricos:
- enteros de 32 bits (núm_at)
- enteros de 64 bits (unsigned_long_at)
- coma flotante de 64 bits (double_at)
Todos estos se convierten en el tipo de número cuando se pasan a una función de extensión, y los números se convierten al tipo numérico de directiva esperado cuando se devuelven.
Cuerdas
Las cadenas son secuencias de bytes de cualquier longitud. Se corresponden con el tipo text_at de directiva. Las cadenas pueden contener bytes nulos (0x00). Los datos binarios arbitrarios se pueden mantener en cadenas, incluida cualquier representación de código de caracteres (por ejemplo, UTF-8 y Unicode completo). Sin embargo, las funciones de cadena que le gusta.upper () asumen ASCII de 8 bits.
Las cadenas se asignan automáticamente cuando se usan. No hay necesidad (o incluso forma) de asignar explícitamente búferes para cadenas. Las cadenas también se desasignan automáticamente por la recolección de elementos no utilizados cuando ya no están en uso. No hay necesidad (o incluso forma) de liberar cadenas explícitamente. Esta asignación automática y desasignación evita algunos problemas comunes en lenguajes como C, como pérdidas de memoria y punteros colgantes.
Los literales de cadena son cadenas de caracteres entre comillas dobles o simples. No hay diferencia entre los dos tipos de comillas: “un literal de cadena” es lo mismo que ‘un literal de cadena’. El escape de barra invertida habitual está disponible: \s (campana), \b (retroceso), \f (feed de formulario), \n (línea nueva/feed de línea), \t (tabulador horizontal), \\ (barra invertida), “(comillas dobles) y ‘(comillas simples). Los valores de bytes decimales se pueden introducir mediante una barra invertida y de uno a tres dígitos (\d, \dd, \ddd). Los valores de bytes hexadecimales se pueden introducir mediante una barra invertida, una x y dos dígitos hexadecimales (\xhh)
Una llamada de sintaxis especial la notación de corchetes largos se puede utilizar para literales de cadena de varias líneas largas. Esta notación encierra la cadena entre corchetes dobles con cero o más signos iguales entre los corchetes; la idea es crear una combinación de corchetes e iguales que no esté en la cadena. No se respetan secuencias de escape en la cadena. Algunos ejemplos:
[[Esta es una cadena de varias líneas que utiliza la notación de corchetes largos.]]
[= [Esta es una cadena multilínea que utiliza una notación larga con [[and ]] y sin escapar.] =]
La notación de corchetes largos se puede utilizar para hacer un comentario de varias líneas. Ejemplo:
—[[ Este es un comentario de varias líneas. –]]
Booleano
Se proporcionan los valores booleanos true y false habituales. Tenga en cuenta que los valores booleanos son diferentes a los valores numéricos, en contraste con C donde se supone que cero es falso y cualquier valor distinto de cero es verdadero.
Cero
nil es un valor especial que significa “sin valor”. Es su propio tipo y no es equivalente a ningún otro valor, en contraste con C donde NULL se define como cero.
Otros tipos
Hay otros dos tipos, datos de usuario y subprocesos. Estos son temas avanzados y no se tratan aquí.