English

標準ライブラリ

ビルトイン関数

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 機能が異なる場合があります。