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, Lua precisa determinar o que conta como "verdadeiro" ou "falso" em contextos lógicos. Esse conceito é chamado de valores truthy e falsy, e Lua lida com isso de maneira diferente de muitas outras linguagens de programação.

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

print(false and "skipped")  -- imprime false: false é um valor considerado falso
print(nil and "skipped")    -- imprime nil: nil é um valor considerado falso

Observe que and e or retornam um de seus operandos, não apenas true ou false: a and b retorna a quando a é falsy; caso contrário, retorna b; a or b retorna a quando a é truthy; caso contrário, retorna b. Portanto, as duas linhas acima exibem false e nil, e cada linha abaixo exibe 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