Lua api(八) lua_isboolean/lua_is*【官方澳门新永利下载】

从前讲了lua_type和lua_typename的用法,可以用来询问变量值的种类,有的时候候大概无需这么麻烦,大家的必要是只是要清楚这一个值是还是不是字符串。尽管是的话,就打字与印刷出来,要是否就怎么也不做,要满意这些供给大家须要一个简短的api,其实推断二个值是否一定项指标api是叁个文山会海,他们统一命名称叫lua_isxxx,大家明日就来看看那“一批”api,大多数属于精晓,只有分别几个用的多一些,小编在例子里做了描述。

通过上一章所说的lua_is*一类别,我们曾经得以看清数值的门类,可是那不是大家的结尾指标,我们的尾声指标是使用那一个值,检验项目只是来剖断的,而那几个存在栈中的值毕竟要怎么样用,将在涉及到明天笔者所列举的这么些api,也等于采取频率极高的lua_to*系列。

  • 原型:int lua_isboolean (lua_State *L, int index);
  • 解说:当给定索引的值类型为 boolean 时,再次来到 1 ,不然重回 0 。
  • 原型:int lua_toboolean (lua_State *L, int index)
  • 分解:把钦命的索引处的的 Lua 值转变为三个 C 中的 boolean 值。 和 Lua
    中做的享有测量试验同样, lua_toboolean 会把其余 区别于 false 和 nil
    的值当做 1 回到; 不然就回到 0 。 如若用叁个无效索引去调用也会回去 0

  • 原型:int lua_iscfunction (lua_State *L, int index);
  • 演说:当给定索引的值是一个 C 函数时,再次来到 1 ,不然重临 0 。
  • 原型:lua_CFunction lua_tocfunction (lua_State *L, int index);
  • 释疑:把给定索引处的 Lua 值转变为一个 C 函数。 那么些值必需是一个 C
    函数;假诺不是就回到 NULL 。

  • 原型:int lua_isfunction (lua_State *L, int index);
  • 讲授:当给定索引的值是一个 C 函数或 Lua 函数时,重回 1 ,不然再次回到 0
  • 原型:lua_Integer lua_tointeger (lua_State *L, int idx);
  • 分解: 把给定索引处的 Lua 值调换为 lua_Integer
    那样一个有暗记整数类型。 这一个 Lua
    值必需是三个数字只怕三个方可调换为数字的字符串, 不然 lua_tointeger
    返回 0 。

  • 原型:int lua_islightuserdata (lua_State *L, int index);
  • 讲解:当给定索引的值是贰个 light userdata 时,重回 1 ,否则重回 0 。
  • 原型:const char *lua_tolstring (lua_State *L, int index,
    size_t *len);
  • 分解:把给定索引处的 Lua 值转变为八个 C 字符串。 固然 len 不为 NULL
    , 它还把字符串长度设到 *len 中。 那一个 Lua
    值必需是叁个字符串或是八个数字; 不然赶回再次回到 NULL 。
    假如值是二个数字,lua_tolstring
    还有恐怕会把酒馆中的那多少个值的实在类型调换为八个字符串。

  • 原型:int lua_isnil (lua_State *L, int index);
  • 表达:当给定索引的值是 nil 时,再次来到 1 ,不然重返 0 。
  • 原型:lua_Number lua_tonumber (lua_State *L, int index);
  • 演说:把给定索引处的 Lua 值转变为 lua_Number 那样三个 C 类型。 那一个Lua 值必需是叁个数字可能叁个可转移为数字的字符串,
    不然,lua_tonumber 返回 0 。

  • 原型:int lua_isnumber (lua_State *L, int index);
  • 表明:当给定索引的值是叁个数字,或是多个可改造为数字的字符串时,重返1 ,不然再次来到 0 。
  • 原型:const void *lua_topointer (lua_State *L, int index);
  • 分解: 把给定索引处的值转变为日常的 C 指针 。 那些值能够是三个userdata ,table ,thread 或是八个 function ; 不然,lua_topointer
    重临 NULL 。 不一样的靶子有例外的指针。
    不设有把指针再折返原有项目标章程。

  • 原型:int lua_isstring (lua_State *L, int index);
  • 解释:当给定索引的值是三个字符串或是三个数字时,重回 1 ,不然再次来到 0
  • 原型:const char *lua_tostring (lua_官方澳门新永利下载,State *L, int index);
  • 解释:等价于 lua_tolstring ,而参数 len 设为 NULL 。

发表评论

电子邮件地址不会被公开。 必填项已用*标注