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 hasWeaponPodobnie 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 hasPasswordSpróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory 2: relacyjne i logiczne
Operatory równościOperatory relacyjneOperator „and”Operator „or”Operator „not”Ewaluacja z krótkim spięciemWartości prawdziwe i fałszywePodsumowanie – prosta logika7Podstawy logiki warunkowej
Instrukcja if-thenInstrukcja if-then-elseInstrukcja elseifPowtórzenie — skrzynia skarbów10Tabele, część 1: styl listy
Czym jest tabela?Tworzenie tabeliDostęp do elementów według indeksuModyfikowanie elementów według indeksuOperator długości '#'table.insert()table.remove()Powtórzenie — zarządzanie członkami drużyny13Projekt: Prosty sklep z eliksirami
Konfiguracja projektuDodawanie eliksiru2Zmienne i typy danych
Czym jest zmienna?LiczbyŁańcuchy znakówWartości logiczneWartość „nil”Funkcja type()Konwencje nazewnictwaPowtórzenie — profil postaci5Podstawowe wyjście
Wyświetlanie literałówWyświetlanie zmiennychWyświetlanie wielu wartościŁączenie ciągów znaków i zmiennychFunkcja tostring()Dane wejścioweRzutowanie typówPowtórka — raport o statusiePowtórka — do 1208Podstawy manipulacji ciągami znaków
string.len()string.upper i string.lowerstring.sub()string.rep()string.find()Podsumowanie – formatuj nazwę użytkownika3Operatory 1: Arytmetyka i konkatenacja
Operatory arytmetyczneOperator moduloOperator potęgowaniaŁączenie ciągów znakówKolejność wykonywania operatorówPowtórka – proste obliczenia6Projekt: wyświetlanie statystyk postaci
Wiadomość powitalnaDeklarowanie statystyk postaci9Podstawy funkcji
Deklarowanie funkcjiWywoływanie funkcjiFunkcje z parametramiFunkcje z wieloma parametramiInstrukcja „return”Powtórzenie — kalkulator polaPoćwicz samodzielnie: Kompilator Lua online