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_base
luaopen_package
luaopen_coroutine
luaopen_string
luaopen_utf8
luaopen_table
luaopen_math
luaopen_io
luaopen_os
luaopen_debug