tipos de datos de Lua
Lua se escribe dinámicamente idiomas, las variables, las definiciones de tipo no sólo tienen que Asignar valores a las variables. Los valores pueden ser almacenados en las variables, se pasa como argumentos o resultados de retorno.
Lua hay ocho tipos básicos son: cero, booleano, número, cadena, los datos de usuario, la función, el hilo y mesa.
Tipos de datos | descripción |
---|---|
nulo | El más simple, sólo el valor de nulo pertenecen a esta clase, representan un valor no válido (equivalente a la falsa expresión condicional). |
booleano | Contiene dos valores: falsas y verdaderas. |
número | Representa un tipo flotante de doble real |
cuerda | Cadena está representado por unas simples o dobles comillas |
función | Función escrita en C o Lua |
datos del usuario | C representa cualquier estructura de datos almacenada en una variable |
hilo | Representa a cabo circuitos independientes, un programa para ejecutar la cooperativa |
mesa | tablas Lua (tabla) es en realidad una "matriz asociativa" (arrays asociativos), el índice de la matriz puede ser un número, una cadena o un tipo de tabla. Cuando en Lua, creación de la tabla se realiza por "construir una expresión" es la expresión de la configuración más sencilla {}, para crear una tabla vacía. |
Podemos utilizar la función de tipo para probar el tipo de una variable o valor dado:
Ejemplos
imprimir ( Tipo ( " Hola mundo " )) - > string de impresión ( tipo ( 10.4 * 3 )) - > Número de impresión ( tipo ( de impresión )) - > Función de impresión ( tipo ( tipo )) - > función de impresión ( tipo ( verdadera )) - > boolean de impresión ( tipo (nil )) - > nil de impresión ( tipo ( tipo (X))) - > string
nil (vacío)
nil no tiene ningún tipo indica un valor válido, tiene sólo un valor - cero, por ejemplo, la impresión de una variable no está asignada, se dará salida a un valor nulo:
impresión ( tipo (a))
Para las variables globales y mesa, nula y una mesa de acción "borrar" a una variable o una tabla de variables globales que se asigna un valor nulo, lo que equivale a eliminarlos, ejecutando el siguiente código conocido:
Los resultados:
Debe ser nula para la comparación entre comillas dobles ":
> Tipo (X) nil > tipo (X) == nil falsa > tipo (X) == " nil " verdadera >
tipo (X) == nil resultado es falsa razón es porque el tipo (tipo (X)) == cadena.
boolean (booleano)
tipo booleano tiene sólo dos valores posibles: true (verdadero) y false (falso), Lua false y nil considerado falso, otros son verdaderas, el número 0 es cierto:
Ejemplos
Código ejecuta los resultados anteriores son los siguientes:
Número (Digital)
predeterminado Lua es solamente un tipo de número - doble (doble precisión) tipo (se puede modificar el luaconf.h tipo por defecto en la definición), el texto siguiente se ve que es el tipo de número:
Ejemplos
Los anteriores resultados de la ejecución de código:
string (cadena)
Cadena está representado por unas simples o dobles comillas.
2 también se puede utilizar entre corchetes "[[]]" para significar "una" cadena.
Ejemplos
Los siguientes resultados de la ejecución de código:
Cuando una cadena numérica para las operaciones aritméticas, Lua intenta convertir esta cadena en un dígito numérico:
El código anterior "error" + 1 realiza una determinada cadena .. usos de conexión, tales como:
# Se utiliza para calcular la longitud de la cadena, en frente de la cadena, los siguientes ejemplos:
Ejemplos
Tabla (Tabla)
Cuando en Lua, creación de la tabla se realiza por "construir una expresión" es la expresión de la configuración más sencilla {}, para crear una tabla vacía. También puede añadir algunos datos de la tabla, tabla de inicialización directa:
Ejemplos
TBL1 locales = {}
- Inicial Tabla Directa
TBL2 locales = { "manzana", "pera", "naranja", "uva"}
tablas Lua (tabla) es en realidad una "matriz asociativa" (arrays asociativos), el índice de la matriz puede ser un número o una cadena.
Ejemplos
A diferencia de otros idiomas matriz al índice de matriz 0 como un índice inicial predeterminado inicial en Lua en la Tabla 1 generalmente comenzar.
Ejemplos
Scripts resultados de la ejecución:
tamaño de la tabla no es una longitud fija, hay un aumento automático de la longitud de la mesa como se añaden nuevos datos, la tabla inicial no es nula.
Ejemplos
Scripts resultados de la ejecución:
función (función)
En Lua, la función es considerado como "valores de primera clase (First-Class Value)", que puede ser variable en función de:
Ejemplos
Scripts resultados de la ejecución:
parámetros de la función se pueden pasar como una (función Anónimo) función anónima es:
Ejemplos
Scripts resultados de la ejecución:
hilo (thread)
En Lua, el hilo principal es un programa de colaboración (co-rutina). Es casi como un hilo (hilo), tienen su propia pila independiente, variables locales, y el puntero de instrucciones, puede compartir variables globales, y la mayoría de otras cosas con otros programas de colaboración.
diferencia de rosca con corrutinas: múltiples hilos pueden ejecutar simultáneamente, y co-rutina sólo se puede ejecutar uno en cualquier momento, y sólo se suspende co-rutina se ejecuta de pausa (suspender).
UserData (tipo personalizado)
userdata es un conjunto de datos definidos por el usuario, para representar un tipo de aplicación o mediante la librería del lenguaje C / C ++ creado puede ser de cualquier tipo de datos arbitrario / C de datos de C ++ (típicamente struct y punteros) almacenado en Lua llamada variable.