luaL_checkoption

[-0, +0, v]

  1. int luaL_checkoption (lua_State *L,
  2. int arg,
  3. const char *def,
  4. const char *const lst[]);

检查函数的第 arg 个参数是否是一个字符串,并在数组 lst (比如是零结尾的字符串数组)中查找这个字符串。返回匹配到的字符串在数组中的索引号。如果参数不是字符串,或是字符串在数组中匹配不到,都将抛出错误。

如果 def 不为 NULL,函数就把 def 当作默认值。默认值在参数 arg 不存在,或该参数是 nil 时生效。

这个函数通常用于将字符串映射为 C 枚举量。(在 Lua 库中做这个转换可以让其使用字符串,而不是数字来做一些选项。)