標準ライブラリ
ビルトイン関数
LuneScript では、以下の Lua 互換または専用のビルトイン関数が利用可能です。
| 関数名 | 説明 |
|---|---|
print(...) |
引数を標準出力へ出力します。 |
type(val) |
値の型名を文字列で返します ("int", "str", "table", "nil" など)。 |
tostring(val) |
値を文字列に変換します。 |
tonumber(val, base) |
文字列を数値に変換します。base で基数 (2-36) を指定可能。失敗時は nil。 |
error(msg) |
エラーを発生させます。 |
assert(cond, msg) |
条件が false の場合にエラーを発生させます。 |
_load(code, name) |
Lua コード文字列をロードし、実行可能な関数を返します。name はチャンク名。 |
unwrap val [default] |
Nilable 型を Non-nilable 型に変換します。default がある場合、nil なら default 値を返します。 |
文字列操作 (str 型メソッド)
文字列型 str は、Lua の string ライブラリの関数をメソッドとして利用できます。
また、フォーマット演算子 % も利用可能です。
let text = "hello world";
print( text.upper() ); // HELLO WORLD
print( text.sub( 1, 5 ) ); // hello (LuneScript/Lua のインデックスは 1 始まり)
print( #text ); // 11 (#text で長さ取得)
print( text.find( "world", 1, true ) );
let formatted = "Value: %d" ( 123 ); // フォーマット
print( formatted );
Lua 標準ライブラリの利用
Lua の標準ライブラリ (math, os, io, string, table)
は、module 宣言を行うことで利用可能です。
LuneScript にはこれらを直接ラップした組み込み機能はありませんが、以下のように定義して使用します。
Math ライブラリの例
module Math require "math" {
pub static let pi: real;
pub static fn sin( x:real ): real;
pub static fn cos( x:real ): real;
}
print( Math.sin( Math.pi ) );
IO (入出力)
ファイル操作は Lua の io ライブラリを利用します。必要に応じて module 宣言を行うか、環境によってはビルトインの io
変数が利用可能な場合もあります。
// ファイル読み込みの例
if! let mut file = io.open( "test.txt", "r" ) {
if! let txt = file.read( "*a" ) {
print( txt );
}
file.close();
}
トランスコンパイル先の環境 (Lua, Go) によって利用可能な IO 機能が異なる場合があります。