6 標準ライブラリ
Lua の標準ライブラリは C API を使って C で実装された便利な関数を提供します。type や getmetatable のように言語で重要な役割を果たす関数もあれば、I/O のように外部へのアクセスを提供する関数、あるいは table.sort のように Lua でも実装可能であるものの様々な理由により C での実装がふさわしい関数が含まれます。
全てのライブラリは公式の C API を使って実装されており、個別の C モジュールとして提供されます。特に断りがない限り、ライブラリ関数は引数の数をパラメータの数に合うよう調整しません。例えばドキュメントに foo(arg) とあるなら、foo を引数無しに呼ぶことはできません。
ライブラリの説明で登場する fail は何らかの失敗を表す偽値を意味します。現在のバージョンでは fail を nil としていますが、将来のバージョンで変更される可能性があります。そのため fail を返す可能性のある関数のエラー判定では (status == nil) ではなく (not status) を使うことが推奨されます。
現在 Lua には次の標準ライブラリがあります:
- 基礎関数 (§ 6.1)
- コルーチン操作 (§ 6.2)
- パッケージ操作 (§ 6.3)
- 文字列操作 (§ 6.4)
- 基礎的な UTF-8 サポート (§ 6.5)
- テーブル操作 (§ 6.6)
- 数学関数 (§ 6.7) (sin, log, ...)
- 入出力機能 (§ 6.8)
- OS 機能 (§ 6.9)
- デバッグ機能 (§ 6.10)
基礎ライブラリとパッケージライブラリ以外のライブラリに含まれる全ての関数は、グローバルなテーブルのフィールドあるいはグローバルなテーブルに含まれるオブジェクトのメソッドとして提供されます。
標準ライブラリにアクセスするには、C のホストプログラムから luaL_openlibs 関数を呼び出します。この関数は全ての標準ライブラリをオープンしますが、代わりに luaL_requiref を使って標準ライブラリを個別にオープンすることもできます。このとき openf には次の関数を指定します:
luaopen_baseluaopen_packageluaopen_coroutineluaopen_stringluaopen_utf8luaopen_tableluaopen_mathluaopen_ioluaopen_osluaopen_debug