Menu
CoddyTech

Valores Truthy e Falsy

Parte da seção Fundamentos do Journey de Lua da Coddy. Lição 24 de 90.

Ao usar operadores lógicos como and, or e not, o Lua precisa determinar o que conta como "verdadeiro" ou "falso" em contextos lógicos. Esse conceito é chamado de valores truthy e falsy, e o Lua lida com ele de maneira diferente de muitas outras linguagens de programação.

Em Lua, apenas dois valores são considerados falsos (tratados como false em operações lógicas):

print(false and "This won't print")  -- false é um valor falso
print(nil and "This won't print")    -- nil é um valor falso

Observe que and e or retornam um de seus operandos, não apenas true ou false: a and b retorna a quando a é falso; caso contrário, retorna b; a or b retorna a quando a é verdadeiro; caso contrário, retorna b. Portanto, as duas linhas acima imprimem false e nil, e cada linha abaixo imprime seu texto.

Todo o resto em Lua é considerado verdadeiro (tratado como true em operações lógicas). Isso inclui valores que podem surpreender você se estiver vindo de outras linguagens:

print(0 and "This will print")      -- 0 é considerado verdadeiro em Lua!
print("" and "This will print")     -- Uma string vazia é considerada verdadeira!
print({} and "This will print")     -- Uma tabela vazia é considerada verdadeira!

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Lua online