Wartości domyślne dla typów Boolean
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 28 z 80.
Jest tu jednak pewien haczyk znany z Lua: or zastępuje również false. W przypadku parametru boolean?, który domyślnie powinien mieć wartość true, zapis flag = flag or true zmienia jawnie przekazane false na true, ponieważ false or true daje true:
local function sendAlert(message: string, loud: boolean?)
loud = loud or true -- sendAlert("Hi", false) nadal otrzymuje true
print(message, loud)
endZamiast tego użyj jawnego sprawdzenia wartości nil. Wartość domyślna zostanie przypisana tylko wtedy, gdy argument nie został podany:
local function sendAlert(message: string, loud: boolean?)
if loud == nil then
loud = true
end
print(message, loud)
end
sendAlert("Hi") -- Hi true
sendAlert("Hi", false) -- Hi falseW przypadku ciągów znaków i liczb operator or jest bezpieczny, ponieważ tylko nil i false są traktowane jako fałsz.
Wyzwanie
ŁatwyUstaw domyślną wartość parametru logicznego na true, tak aby false nie mogło jej zmienić.
- Napisz
local function shippingCost(weight: number, insured: boolean?): number. - Rozpocznij funkcję od
if insured == nil then insured = true end. - Zwróć
weight * 0.5 + 2, gdyinsuredma wartość true, a w przeciwnym razieweight * 0.5. - Wyświetl
shippingCost(4)ishippingCost(4, false).
Naciśnij Uruchom kod: wynik kończy się na 4 i 2.
Spróbuj swoich sił
-- Wartość domyślna z użyciem idiomu `or`
local function calculateTax(price: number, rate: number?): number
rate = rate or 0.05
return price * rate
end
print(calculateTax(100))
print(calculateTax(200, 0.08))
Wszystkie lekcje w sekcji Wprowadzenie do Luau
1Pierwsze kroki z Luau
Czym jest Luau?Dlaczego warto używać Luau?Twój pierwszy kod w LuauSprawdzanie typów i tryby błędówPodsumowanie: Wprowadzenie do Luau4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji anonimowychFunkcje niezwracające wartościParametry opcjonalneDomyślne wartości parametrówWartości domyślne dla typów BooleanFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Podstawowe typy
Number, String i BooleanTyp 'any': wyjście awaryjneTyp 'unknown'Nil i typy opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Aliasy, typy sumy i przekroju
Aliasy typów dla typów prostychTypy sumyPraca z typami sumyTypy literałoweTypy przekrojuŁączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów3Typowane tabele: tablice i mapy
Typowane tabliceDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie i uzyskiwanie dostępu do mapIterowanie po tabelachTabele o mieszanej strukturzeOdczytywanie siatkiTworzenie siatkitable.unpackPodsumowanie: tablice i mapyPoćwicz samodzielnie: Kompilator Luau online