int lua_isstring (lua_State *L, int index);
Тази функция връща 1, ако стойността на дадения приемлив индекс е низ или число (което винаги може да се преобразува в низ), и 0 в противен случай. (Източник)
Има ли (по-елегантен) начин наистина да се докаже дали дадения низ наистина е низ, а не число в Lua? Тази функция няма абсолютно никакъв смисъл за мен!
Първата ми идея е да изследвам допълнително дължината на низа с
`if(string.len(String) > 1) {/* this must be a string */}`
... но това не се чувства толкова добре.
string.len(String) <= 1
може да работи? - person Yu Hao   schedule 29.09.2015string.len(...
може да помогне, защото истинският низ обикновено е по-дълъг от 1 или 2 знака. - person user1511417   schedule 29.09.2015if( lua_type( L, index ) == LUA_TSTRING ) ...
. Lua преобразува числата в низове и подобните на числа низове в числа за удобство, така чеlua_isstring()
(иlua_isnumber()
) е необходимо, ако искате да направите същото във вашия собствен API. - person siffiejoe   schedule 29.09.2015string.len()
няма да помогне. Истинският низ може да бъде с всякаква дължина. - person Keith Thompson   schedule 29.09.2015