Menu
Coddy logo textTech

Ewaluacja z krótkim spięciem

Część sekcji Podstawy ścieżki Lua w Coddy. Lekcja 23 z 90.

Operatory and i or korzystają ze sprytnej optymalizacji zwanej ewaluacją z krótkim spięciem. Oznacza to, że Lua przestaje obliczać wyrażenie, gdy tylko zna już wynik końcowy, potencjalnie całkowicie pomijając jego części.

W przypadku operatora and, jeśli pierwszy warunek ma wartość false, Lua od razu wie, że całe wyrażenie będzie miało wartość false, i nie sprawdza drugiego warunku:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua sprawdza tylko playerAlive (false), nigdy nie sprawdza hasWeapon

Podobnie w przypadku operatora or, jeśli pierwszy warunek ma wartość true, Lua wie, że wynikiem będzie true, i pomija drugi warunek:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua sprawdza tylko hasKey (true), nigdy nie sprawdza hasPassword

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Lua online