Avaliação de Curto-Circuito
Parte da seção Fundamentals do Journey de Lua da Coddy — lição 23 de 90.
Nos operadores and e or, ele utiliza uma otimização inteligente chamada avaliação de curto-circuito. Isso significa que o Lua interrompe a avaliação assim que conhece o resultado final, potencialmente pulando partes da expressão inteiramente.
Para o operador and, se a primeira condição for false, o Lua sabe imediatamente que a expressão inteira será false sem verificar a segunda condição:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- O Lua apenas verifica playerAlive (false), nunca avalia hasWeaponDa mesma forma, para o operador or, se a primeira condição for true, Lua sabe que o resultado será true e pula a segunda condição:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Lua apenas verifica hasKey (true), nunca avalia hasPasswordFolha de consulta
Lua utiliza avaliação de curto-circuito para os operadores and e or, interrompendo a avaliação assim que o resultado final é conhecido.
Para o operador and: se a primeira condição for false, a segunda condição nunca é avaliada:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- Apenas verifica playerAlive (false), ignora hasWeaponPara o operador or: se a primeira condição for true, a segunda condição nunca é avaliada:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Apenas verifica hasKey (true), ignora hasPasswordExperimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores 2 Relacionais e Lógicos
Operadores de IgualdadeOperadores RelacionaisO Operador 'and'O Operador 'or'O Operador 'not'Avaliação de Curto-CircuitoValores Truthy e FalsyRecapitulação - Lógica Simples7Lógica Condicional Básica
A instrução if-thenA instrução if-then-elseA instrução elseifRecapitulação - Baú do Tesouro2Variáveis e Tipos de Dados
O que é uma Variável?NúmerosStringsBooleanosO Valor 'nil'A Função type()Convenções de NomenclaturaRecapitulação - Perfil de Personagem5Saída Básica
Imprimindo LiteraisImprimindo VariáveisImprimindo Múltiplos ValoresCombinando Strings e VariáveisA Função tostring()EntradaCastRecapitulação - Relatório de StatusRecapitulação - Até 1208Fundamentos de Manipulação de Strings
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Revisão - Formatar Nome de Usuário3Operadores 1: Aritmética e Concatenação
Operadores AritméticosOperador de MóduloOperador de ExponenciaçãoConcatenação de StringsPrecedência de OperadoresRecapitulação - Cálculos Simples6Projeto: Exibição de Atributos do Personagem
Mensagem de Boas-vindasDeclarar Atributos do Personagem9Fundamentos de Funções
Declarando uma FunçãoChamando uma FunçãoFunções com ParâmetrosFunções com Múltiplos ParâmetrosA Instrução 'return'Recapitulação - Calculadora de Área