http://developer.anscamobile.com/content/basic-functions ↑の和訳とかしてみたページ。 assert (v [, message])vがfalseであるとき(≒nilかfalseのとき)にエラーを返します。vがtrue(≒nilでもfalseでもない)であれば、vの値をそのまま返します。 messageでエラーメッセージを任意に指定できます。指定がない場合はデフォルトで「assertion failed!」が返されます。 error (message [, level])最後に保護された関数の呼び出しを終了し、messageをエラーメッセージとして返します。error関数自体は値を返しません。 通常、error関数はメッセージの頭にエラー位置に関する情報を付記します。level引数によって、エラー位置をどのように取得するか指定できます。デフォルトのLevel1ではerror関数を呼んだ位置、Level2ではerror関数を呼んだ関数の位置を返す、という具合に。なお、Level0ではエラー位置に関する情報を付記しません。 _Gグローバル環境を保持するグローバル変数(関数ではない)。つまり_G._G=_Gが成り立つ。Lua自身がこの変数を使うわけではないので、_G変数の中身を書き換えても環境に影響はありませんし、逆もまた然りです。環境を変えたい場合はsetfenv関数を使ってください。 getfenv ([f])関数が置かれた環境を返します。fはLuaの関数か、関数のスタックレベルです。Level1ではgetfenv関数を呼んだ関数を返します。 もしfがLuaの関数でない場合や0であったとき、getfenv関数はグローバル環境を返します。fのデフォルト値は1です。 getmetatable(object)objectがメタテーブルを持たない場合、nilを返します。 objectのメタテーブルが"__metatable"フィールドを持つ場合、その値を返します。 その他の場合、objectのメタテーブルを返します。 ipairs(t)この関数はイテレータ関数、テーブルt、0という3つの値を返し、以下のような構文で使われます。 for i, v in ipairs(t) do body endnext(table [, index])テーブルの全てのフィールドに横断的にアクセスするための関数です。第1引数はテーブルで、第2引数はそのテーブルのインデックスです。next関数はテーブルの次のインデックスと、それに対応したテーブルの値を返します。第2引数がnilの場合、next関数はテーブルの最初のインデックスの値を返します。第2引数に最後のインデックスを指定したとき、またはnilを指定してテーブルが空であるとき、next関数はnilを返します。第2引数を記述しなかったときはnilを挿入したものと解釈されます。特徴的な使い方として、next(t)でテーブルtが空かどうかを調べることができます。 この関数により列挙されるインデックスの順序は決まっていません。インデックスが数値でも同様です。もし数値の順に横断的なアクセスを行いたい場合は、数値を使ってfor文を回すか、ipairs関数を利用してください。 また、テーブル内を巡回している間にテーブルに新しい(それまで存在していなかった)フィールドを加えた際の、next関数の振る舞いは未定義です。既存のフィールドの内容を変更する分には問題ありませんし、たとえフィールドを消去してしまっても構いません。 pairs(t)この関数はnext関数、テーブルt、nilという3つの値を返し、以下のような構文で使われます。 for k, v in pairs(t) do body endテーブルt内の全てのキー・値ペアについてfor文を回します。 テーブル内の値を巡回中にテーブルを変更する際の注意点についてはnext関数の項を参照してください。 pcall(f, arg1, ...)第2引数以降を引数として、関数fを保護モードで呼び出します。つまり、関数fの内部で発生した全てのエラーは外部へ伝搬されることがないということです。その代わり、pcall関数がエラーをキャッチし、ステータスコード(boolean)を返します。 関数がエラー無く実行されたとき、pcallはステータスコードとしてtrueを返し、それに続いて関数呼び出しの結果を返します。何らかのエラーが発生した場合は、falseとエラーメッセージを返します。 print(...)引数をいくつでも取ることができ、それらの値をtostring関数を用いて文字列に変換し、標準出力に表示します。print関数は書式化された(美しく整えられた書式の)表示をするためではなく、デバッグに代表されるような手早く簡単に値を見るための手段として用意されています。もし書式化された表示が必要な場合には、string.format関数を利用してください。 rawequal(v1, v2)v1とv2が等しいかどうかチェックします。メタメソッドの呼び出しは行いません。返り値はbooleanです。 rawget(table, index)メタメソッドを呼び出さずにtable[index]の値を返します。tableはテーブルでなければなりません。indexはどんな値でも構いません。 rawset(table, index, value)メタメソッドを呼び出さずにtable[index]にvalueをセットします。tableはテーブルでなければなりません。indexはnil以外ならどんな値でも構いません。valueはLuaが表現できる値であれば何でも構いません。 select(index, ...)indexが数値であれば、selectの引数のうち「index+1」番目以降の全ての引数を返します。 数値以外では文字列"#"を使うことができ、index以外の引数の数を返します。 setfenv(f, table)与えられた関数において使用される環境を変更します。fはLuaで利用できる何らかの関数、またはスタックレベルを表す数値です。スタックレベルは、Level1でsetfenv関数を呼び出した関数を示します。setfenv関数は、関数(関数f、もしくはスタックレベルfによって示された関数)を返します。 特殊なケースとして、fが0のとき、setfenv関数は実行スレッドに影響を及ぼします。この場合、setfenv関数は値を返しません。 setmetatable(table, metatable)tableにmetatableをセットする(テーブル以外の型のメタテーブルはLuaから変更することはできません。Cからは可能です。)。metatableの値がnilであるとき、tableからメタテーブルが削除されます。元のメタテーブルが"__metatable"フィールドを持っていると、エラーが発生します。 この関数はテーブルを返します。 tonumber(e [, base])引数を数値に変換しようと試みます。もし引数が数値であったり、数値に変換可能な文字列であったりする場合、tonumber関数はその数値を返します。それ以外の場合、nilを返します。 省略可能な引数として、数値の基数を指定できます。基数baseには2から36までの整数を指定できます。基数が10より大きいとき、文字'A'(大文字・小文字問いません)は10を表し、文字'B'は11を表し、同じように文字'Z'は35を表します。基数がデフォルトの10であるとき、eは小数や指数を含むことができます。しかし、その他の場合はeは符号無しの整数である必要でなければなりません。 tostring(e)あらゆる型の値を引数に取り、妥当な文字列に変換します。数値が変換されるときの振る舞いを完全に制御したい場合は、string.formatを使ってください。 もし引数eのメタテーブルが"__tostring"フィールドを持っている場合、tostring関数は対応する値を引数eから呼び出し、この関数の返り値として利用します。 type(v)唯一の引数であるvについて、型の名称を文字列で返します。返される可能性のある文字列は以下のとおりです。
unpack(list [, i [, j]])テーブルlistに含まれる要素を返します。これは、固定長の要素しか記述できない点を覗いて、以下のコードと等価です。 return list[i], list[i+1], ... , list[j-1], list[j]デフォルトでは、i=1, j=テーブルの要素数となっています。 更新履歴2011/04/09 作成 |