Lua源代码阅读(一)

   lualib.h   打开Lua api库函数 

  Lua5.3中新增utf8库

#define LUA_UTF8LIBNAME "utf8"

LUAMOD_API int (luaopen_utf8) (lua_State *L);

标准库提供了一些有用的函数, 它们都是直接用 C API 实现的。 其中一些函数提供了原本语言就有的服务 (例如,type 与 getmetatable); 另一些提供和“外部”打交道的服务(例如 I/O ); 还有些本可以用 Lua 本身来实现,但在 C 中实现可以满足关键点上的性能需求 (例如 table.sort)。

所有的库都是直接用 C API 实现的,并以分离的 C 模块形式提供。 目前,Lua 有下列标准库:

  • 基础库 (§6.1);
  • 协程库 (§6.2);
  • 包管理库 (§6.3);
  • 字符串控制 (§6.4);
  • 基础 UTF-8 支持 (§6.5);
  • 表控制 (§6.6);
  • 数学函数 (§6.7) (sin ,log 等);
  • 输入输出 (§6.8);
  • 操作系统设施 (§6.9);
  • 调试设施 (§6.10).

除了基础库和包管理库, 其它库都把自己的函数放在一张全局表的域中, 或是以对象方法的形式提供。

要使用这些库, C 的宿主程序需要先调用一下 luaL_openlibs 这个函数, 这样就能打开所有的标准库。 或者宿主程序也可以用 luaL_requiref 分别打开这些库: luaopen_base (基础库), luaopen_package(包管理库), luaopen_coroutine (协程库), luaopen_string (字符串库), luaopen_utf8(UTF8 库), luaopen_table (表处理库), luaopen_math (数学库), luaopen_io (I/O 库),luaopen_os (操作系统库), luaopen_debug (调试库)。 这些函数都定义在 lualib.h 中。




jksLua源代码阅读(一)_第1张图片

你可能感兴趣的:(Lua源代码阅读(一))