Tipos sencillos
El lenguaje permite valores de los siguientes tipos simples:
- Números
- Cuerdas
- Booleano
- Nulo
- Otros tipos
Números
Todos los números (incluso los enteros) se representan mediante valores de coma flotante del IEEE 754. Los números enteros de hasta 2^54 tienen representaciones exactas. Los valores numéricos se pueden representar mediante:
- Enteros decimales con 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 (0xffff0000)
Las expresiones de directiva de NetScaler tienen tres tipos numéricos:
- Enteros de 32 bits (num_at)
- Enteros de 64 bits (unsigned_long_at)
- Punto flotante de 64 bits (double_at)
Todos estos valores 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. Corresponden al tipo text_at de la directiva. Las cadenas pueden contener bytes nulos (0x00). Los datos binarios arbitrarios se pueden almacenar en cadenas, incluida cualquier representación de código de caracteres (por ejemplo, UTF-8 y Unicode completo). Sin embargo, las funciones de cadena como estring.upper () asumen un ASCII de 8 bits.
Las cadenas se asignan automáticamente cuando se usan. No hay necesidad (ni siquiera forma) de asignar explícitamente búferes para las cadenas. Las cadenas también se desasignan automáticamente mediante la recolección de basura cuando ya no se usan. No hay necesidad (ni siquiera forma) de liberar cadenas de forma explícita. Esta asignación y desasignación automáticas evitan algunos problemas comunes en lenguajes como C, como las pérdidas de memoria y los punteros suspendidos.
Los literales de cadena son cadenas de caracteres entre comillas simples o dobles. No hay diferencia entre los dos tipos de comillas: “un literal de cadena” es lo mismo que “un literal de cadena”. Está disponible el escape habitual de barra invertida:\ s (campana),\ b (barra invertida),\ f (fuente de formulario),\ n (fuente de nueva línea/línea),\ t (ficha 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)
Se puede utilizar una sintaxis especial llamada notación de corchetes largos para literales de cadenas largas de varias líneas. Esta notación incluye la cadena entre corchetes dobles con cero o más signos iguales entre ellos; la idea es obtener una combinación de corchetes e iguales que no esté en la cadena. No se respeta ninguna secuencia 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 de varias líneas que utiliza una notación larga con [[y]] y un escape sin escape.] =]
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 verdaderos y falsos habituales. Tenga en cuenta que los valores booleanos son diferentes a los valores numéricos, a diferencia de C, donde se supone que cero es falso y cualquier valor distinto de cero es verdadero.
Nulo
nil es un valor especial que significa “sin valor”. Es de su propio tipo y no es equivalente a ningún otro valor, a diferencia de C, donde NULL se define como cero.
Otros tipos
Hay otros dos tipos, datos de usuario e hilos. Estos son temas avanzados y no se tratan aquí.