Lua początkujący tutaj, próbując nauczyć się przez ... To jest mój czwarty dzień z Lua, więc proszę o mnie.Lua wykonać coś zapisanego w tabelach wartość klucza
Chcę utworzyć tabelę o określonych nazwach jako klucze i określone funkcje jako wartości. Nazwy kluczy reprezentują polecenia wprowadzone przez użytkownika i jeśli istnieje klucz o tej nazwie, wówczas program powinien wykonać kod zapisany w tych wartościach kluczy.
Tak na przykład, robimy tabelę z kluczami i funkcji wewnątrz wartości klucza:
local t = {
["exit"] = quitGame,
...,
...
}
i mamy także funkcję na przykład:
function quitGame()
print("bye bye")
os.exit()
end
więc teraz robimy:
userInput = io.read()
for i,v in pairs(t) do
if userInput == i then
--now here, how do I actually run the code that is stored in that key value (v)?
end
end
Mam nadzieję, że rozumiesz, co próbuję zrobić.
Dokładnie tego potrzebowałem. Dzięki! Jeszcze jedno pytanie: w jaki sposób zatrzymać program, gdy program wywołuje funkcję z tabeli? Na przykład, jeśli chcę, aby funkcja wydrukowała coś, a następnie poczekać jeszcze raz na kolejne dane użytkownika? – thee
@thee Ostatecznie to zależy od twojego środowiska, ale w autonomicznej (na przykład) pętli jak 'while true do userInput = io.read() ... done' będzie działać. –