hodilo by se zminit minusovou notaci zasobnikoveho indexu, -1 je top, -2 druhy zvrchu atd.
jenom kosmetika, navratovy typ tonumber funkce je lua_Number a tointeger lua_Integer (ten nevim jestli je v luaconf.h, ale asi to nebude typedef jenom tak ze srandy).
Diky za upozorneni a doplneni, ty indexy pri pristupu do zasobniku jsou opravdu "do zaporu", v podstate podobne, jako u klasickeho ramce zasobniku (stack frame) na x86.
Zminovany lua_integer je v luaconf.h zadefinovan jako:
#define LUA_INTEGER ptrdiff_t
coz je zajimave, protoze to IMHO nektere prekladace povazuji za int a nektere za long (mam na mysli 32bitove prostredi). V podstate ale nevadi, kdyz bude LUA_INTEGER typu long, jen je nutne mit na pameti, ze pri prevodu na double se ztraci nejnizsi bity, coz v nekterych pripadech muze prekvapit (od urcite hodnoty napriklad plati a==a+1 a podobna uskali doublu).
Lua se mi po vsech strankach libi, ale zajimalo by me (zatim jsem to nenasel ani v dokumentaci), jestli se v ni daji zapisovat "here" stringy - neco jako ma napriklad shell, Python nebo Perl. Hodilo by se to napriklad pro SQL dotazy, kusy HTML apod. Existuje takova konstrukce?
HERE řetězce (tedy řetězce ukončené libovolným předem daným textem) Lua sice nemá, ale má řetězce ve tvaru [\(=*\)]<řetězec>]\1] (tedy počet rovnítek mezi závorkami na začátku stejný jako na konci. To nestačí?
jj, to uplne staci, kdyz to zachova vsechny mezery i konce radku. Diky! btw to je prave jedna vec, ktera mi chybi treba v C ci Jave, celkem mi neni jasne, proc to do jazyka nepridali, mohl by to zpracovavat uz preprocesor (C) do klasickych retezcu.
ps: mam dojem, ze ta druha zavorka je opacne, ale to je jedno, stacilo mi nakopnuti spravnym smerem :-)