Lua - Tipos de dados
Lua é uma linguagem tipada dinamicamente, então as variáveis não têm tipos, apenas os valores têm tipos. Os valores podem ser armazenados em variáveis, passados como parâmetros e retornados como resultados.
Em Lua, embora não tenhamos tipos de dados variáveis, temos tipos para os valores. A lista de tipos de dados para valores é fornecida abaixo.
Sr. Não | Tipo de valor e descrição |
---|---|
1 | nil Usado para diferenciar o valor de ter alguns dados ou nenhum dado (nulo). |
2 | boolean Inclui verdadeiro e falso como valores. Geralmente usado para verificação de condições. |
3 | number Representa números reais (ponto flutuante de precisão dupla). |
4 | string Representa matriz de caracteres. |
5 | function Representa um método escrito em C ou Lua. |
6 | userdata Representa dados C arbitrários. |
7 | thread Representa threads de execução independentes e é usado para implementar co-rotinas. |
8 | table Representa matrizes comuns, tabelas de símbolos, conjuntos, registros, gráficos, árvores, etc., e implementa matrizes associativas. Ele pode conter qualquer valor (exceto nulo). |
Função de tipo
Em Lua, existe uma função chamada 'tipo' que nos permite saber o tipo da variável. Alguns exemplos são fornecidos no código a seguir.
print(type("What is my type")) --> string
t = 10
print(type(5.8*t)) --> number
print(type(true)) --> boolean
print(type(print)) --> function
print(type(nil)) --> nil
print(type(type(ABC))) --> string
Quando você constrói e executa o programa acima, ele produz o seguinte resultado no Linux -
string
number
boolean
function
nil
string
Por padrão, todas as variáveis apontarão para nil até que recebam um valor ou sejam inicializadas. Em Lua, cadeias de caracteres zero e vazias são consideradas verdadeiras no caso de verificações de condição. Portanto, você deve ter cuidado ao usar operações booleanas. Saberemos mais sobre esses tipos nos próximos capítulos.