Chcę utworzyć nową funkcję Lua.rozszerzenie Lua: sprawdź liczbę parametrów przekazanych do funkcji
Mogę użyć funkcji z parametrami (podążam za this link), aby odczytać parametry funkcji.
static int idiv(lua_State *L) {
int n1 = lua_tointeger(L, 1); /* first argument */
int n2 = lua_tointeger(L, 2); /* second argument */
int q = n1/n2; int r = n1 % n2;
lua_pushinteger(L, q); /* first return value */
lua_pushinteger(L, r); /* second return value */
return 2; /* return two values */
}
Chciałabym wiedzieć, czy istnieje sposób, aby znać liczbę parametrów przekazywanych do funkcji, aby wydrukować wiadomość, jeśli użytkownik nie wywołać funkcję z dwoma parametrami.
Chcę uruchomić funkcję, gdy użytkownik zapisuje
idiv(3, 4)
i drukować błąd podczas
idiv(2)
idiv(3,4,5)
and so on...
Normalną praktyką w Lua nie ma na co narzekać dodatkowych argumentów. – lhf
A co z mniejszą liczbą argumentów? – Jepessen
Mniejsza liczba argumentów to inna historia. Jeśli można użyć rozsądnych wartości domyślnych, zrób to. W przeciwnym razie zwiększ błąd. – lhf