Podsumowanie — bezpieczne dzielenie
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 34 z 54.
Wyzwanie
ŁatwyNapisz funkcję safeDivide, która przyjmuje a i b oraz zwraca wynik dzielenia a przez b albo komunikat o błędzie, jeśli dzielenie się nie powiedzie.
Funkcja powinna używać pcall(), aby bezpiecznie wykonać operację dzielenia. Utwórz funkcję wewnętrzną, która wykonuje dzielenie i zgłasza błąd, jeśli b jest równe zero, a następnie opakuj ją w pcall(), aby przechwycić ewentualne błędy.
Logika:
- Utwórz funkcję wewnętrzną, która sprawdza, czy
bjest równe 0 - Jeśli
bjest równe 0, wywołajerror("Cannot divide by zero") - W przeciwnym razie zwróć
a / b - Użyj
pcall(), aby wykonać funkcję wewnętrzną - Jeśli operacja się powiedzie, zwróć
"Result: ", a po nim wynik dzielenia - Jeśli wystąpi błąd, zwróć
"Error: ", a po nim komunikat o błędzie
Parametry:
a(liczba): dzielnab(liczba): dzielnik
Zwraca: Ciąg znaków zawierający albo "Result: ", a po nim wynik dzielenia, albo "Error: ", a po nim komunikat o błędzie (ciąg znaków)
Spróbuj swoich sił
function safeDivide(a, b)
-- Wpisz kod tutaj
end
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoi3Zaawansowane koncepcje funkcji
Zwracanie wielu wartościFunkcje wariadyczne (...)Funkcje jako wartości pierwszej klasyFunkcje anonimoweCzym jest domknięcie?Podsumowanie — prosty obsługiwacz zdarzeń6Obsługa błędów
Funkcja error()Wywołania chronione za pomocą pcall()Podsumowanie — bezpieczne dzieleniePoćwicz samodzielnie: Kompilator Lua online