Lua標準ライブラリ/基本ライブラリ

ページ名:Lua標準ライブラリ/基本ライブラリ

Lua標準ライブラリ/基本ライブラリ

順序
数学ライブラリ


目次

基本ライブラリ[]

_G[]

グローバル変数を全て含むテーブルです。_G自身も含まれます。

foo = 1mw.log( foo ) -- logs "1"_G.foo = 2mw.log( foo ) -- logs "2"_G = {} -- _Gの中に_Gを作成した事になるが・・・_G.foo = 3mw.log( foo ) -- 表示されるのは"2"のまま

_G自身をテーブルとして使用する例です。

-- Call a function whose name is stored in a variable_G[var]()
-- Log the names and stringified values of all global variablesfor k, v in pairs( _G ) do mw.log( k, v )end
-- Log the creation of new global variablessetmetatable( _G, { __newindex = function ( t, k, v ) mw.log( "Creation of new global variable '" .. k .. "'" ) rawset( t, k, v ) end} )

_VERSION[]

Luaのバージョンを示す文字列です。

Aviutl拡張編集 0.90d3時点での内容は"Lua 5.1"です。

assert[]

assert(v[, mes])

v が nil か false だった時、エラーメッセージmesを送出します
mes省略時のエラーメッセージは "assertion failed!" になります

もしそうでなかった場合、そこに記述された引数をそのまま返します。中に関数を記述した場合、その返す値でassertを実行します。
-- This doesn't check for errorslocal result1, result2, etc = func( ... )-- This works the same, but does check for errorslocal result1, result2, etc = assert( func( ... ) )

error[]

error(mes[, level])

エラーメッセージmesを送出します

levelはエラーメッセージに付加する位置情報を指定します
1ならerror関数を呼び出した位置
2ならerror関数を呼び出した関数を呼び出した位置
levelが0か関数呼び出しの深度以上の場合、位置情報は付加されません

getfenv[]

getfenv(f)

※Lua 5.2では削除されます。エンジン設定のallowEnvFuncsによって異なります。

指定された関数の現在の環境を返します。fにはLuaの関数かスタックレベルを指定します。

  • 1、nil、または省略された場合、getfenvを呼び出す関数の環境を返します。多くの場合、これは_Gと同じになります。
  • 整数2〜10は、呼び出しスタックの上位にある関数の環境を返します。たとえば、2は現在の関数を呼び出した関数の環境を返し、3はその関数を呼び出す関数の環境を返します。値がスタック内の関数呼び出しの数よりも大きい場合、またはターゲットのスタックレベルが末尾呼び出しで返された場合は、エラーが発生します。
  • 関数を渡すと、その関数が呼び出されたときに使用される環境が返されます。

すべての標準ライブラリ関数とScribuntoライブラリ関数によって使用される環境は保護されています。getfenvを使ってこれらの環境にアクセスしようとすると、代わりにnilが返されます。

getmetatable[]

getmetatable(t)

tのメタテーブルを返します
tのメタテーブルが__metatableメソッドを持ってたら、その値を返します
nilを返す事もあります

Wikiセキュリティの事情でテーブル型以外の値にメタテーブルを設定できないためテーブル型以外では返せません。

ipairs[]

ipairs(t)

イテレータ関数、t、0の3つの値を返します。

for i, v in ipairs( t ) do -- blockend

上のコードは 1 から連続する t の正の整数のインデックスの要素すべてに対して処理を行いますiはインデックス、vはその値です

eのメタテーブルが__ipairsメソッドを持っていたら、そちらを呼び出します

next[]

next(t[, i])

テーブルtの要素iの次の要素の名前と値を返します
iがnilもしくは未定義の値ならtの最初の要素の名前と値を返します
最後のインデックスで呼び出すか、空のテーブルに対してnilで呼び出すと、nextはnilを返す。 二番目の引数が省略された場合はnilと解釈される。 特に、next( t ) == nilを使うとテーブルが空かどうか調べることができる。

Luaにはフィールドの宣言がない。テーブル内にフィールドが存在しないのと、nil値が格納されたフィールドには、何の違いも無い。ゆえに、nextはnilでない値を持つフィールドのみを考慮する。インデックスが列挙される順番は、数値のインデックスに対しても、不定である (数値順にテーブルを巡回するには、数値用のfor文やipairs関数を使う)。

テーブルの巡回中に、もし存在していないフィールドに新たに値が割り当てられたら、nextの動作は未定義である。しかし既存のフィールドは変更してもよい。特に、既存のフィールドを消去するのは構わない。

pairs[]

pairs(t)

next関数、t、nilの3つの値を返します

for k, v in pairs( t ) do -- blockend

上のコードはtの要素すべてに対して処理を行います k は要素名、v はその値です

巡回中にテーブルを変更する際の注意はnextを参照。

Wiki.pngeのメタテーブルが__pairsメソッドを持っていたら、そちらを呼び出します

pcall[]

pcall(f,[ ...])関数fに指定された引数を(protected modeで)渡して実行します。
関数f内でエラーが発生してもプログラムを中断せずに、falseとエラーコードを返します。
成功時はtrueと関数fの戻り値を返します。

特定の内部エラーを傍受することはできません。

関数の実行中にエラーが発生した場合、通常は呼び出し元までエラーが伝搬し、そこで実行を止めてしまう。しかし、アプリケーション組み込みのスクリプトでは特に、エラーが発生しても止まってほしくないことがある。そこで、単に関数を呼び出す代わりに pcall() という関数を使って関数を呼び出す。

擬似コードでは、pcallは次のようになります:

function pcall( f, ... ) try return true, f( ... ) catch ( message ) return false, message endend

rawequal[]

rawequal(a, b)

__eqメタメソッドを呼ばずにaとbが等しいか調べます。戻り値はブーリアンです

rawget[]

rawget(t, i)

__indexメタメソッドを呼ばずに t[i] の値を取得します。t はテーブルでなければなりません

rawset[]

rawset(t, i, v)

__newindexメタメソッドを呼ばずに t[i] に v を代入します。t はテーブルでなければなりません

select[]

select(i, ...)

iが整数なら[i+1]番目以降の引数の値を全て返しますiが文字列'#'ならiを除く引数の数を返します

言い換えれば、selectは...にnil値が含まれていても正しく動作することを除けば、ほぼ次のようなものです(nilの問題については #unpackの項目をご覧ください)

function select( index, ... ) local t = { ... } if index == '#' then return #t else return unpack( t, index ) endend

負の値を指定することも可能で、その場合末尾からの位置になります。

local secondToLast, last = select(2, "one", "two", "three", "four")mw.log(secondToLast) --> "two"mw.log(last) --> "three"

local secondToLast, last = select(-2, "one", "two", "three", "four")mw.log(secondToLast) --> "three"mw.log(last) --> "four"

setmetatable[]

setmetatable(t, meta)

テーブルtのメタテーブルを設定します
もしmetaがnilであれば、テーブルtのメタテーブルは除去される。 元のメタテーブルが__metatableフィールドを持っていると、エラーになる。

Aviutl.pngテーブル型以外の値にメタテーブルを設定するには、C言語側で処理する必要があります

tonumber[]

tonumber(e[, base])

eが数値か、数値に変換可能な文字列なら数値を、それ以外ならnilを返します
base(省略時:10)にはeを変換する際に使う基数を 2~36 の範囲で指定します

基数10では値は小数部を持ったり、E表記で表されたり、基数16ではそれを示すために先行 "0x"を持つ可能性があります。他の基数では、符号なし整数のみが受け入れられます。

tostring[]

tostring(e)

eを文字列に変換します
それぞれの型がどのように変換されるかについての詳細はLuaのデータ型を見てください。

eのメタテーブルが__tostringメソッドを持っていたら、そちらを呼び出します

type[]

type(v)

vの型を文字列で返します。返される文字列は以下のどれかです

"nil""number""string""boolean""table""function""thread"Aviutl.png"userdata"

unpack[]

unpack(t[, i[, j]]

テーブルtの、i以上j以下の整数の要素すべてを返します
nilもしくは省略した時、iは 1、jは#tの値になります

tがシーケンスではなく、jがnilまたは未指定の場合、結果は確定的ではありません。詳細は長さ演算子を見てください。

※Lua 5.2からはテーブルライブラリになり、table.unpackとなります

xpcall[]

xpcall(f, err)関数 f を実行し、エラーが発生したらエラーメッセージを引数に関数 err を実行します。
関数 f 成功時は true と関数 f の戻り値を返します。
失敗時はfalseと関数errの戻り値を返します。

特定の内部エラーを傍受することはできません。

擬似コードでは、xpcallは次のようになります:

function xpcall( f, errhandler ) try return true, f() catch ( message ) message = errhandler( message ) return false, message endend


特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。

シェアボタン: このページをSNSに投稿するのに便利です。


最近更新されたページ

左メニュー

左メニューサンプル左メニューはヘッダーメニューの【編集】>【左メニューを編集する】をクリックすると編集できます。ご自由に編集してください。掲示板雑談・質問・相談掲示板更新履歴最近のコメントカウン...

電球ボトル

この記事は種族検索のためのページです。Tardis"元人間の物人の遺伝子は物人の世界から来た同族の遺伝子と全く同じだったの。" - Tardis下記は種族が同じキャラクターのページへのリンク一覧です。...

電球

この記事は種族検索のためのページです。Tardis"元人間の物人の遺伝子は物人の世界から来た同族の遺伝子と全く同じだったの。" - Tardis下記は種族が同じキャラクターのページへのリンク一覧です。...

闇の中心

闇の中心EnglishCenter of Darkness 属性 DemonUnknown目次1 属性解説2 闇の中心の関係者2.1 幽閉されたナイトメア種2.2 幽閉された荒らし3 関連項目属性解説...

この記事は種族検索のためのページです。Tardis"元人間の物人の遺伝子は物人の世界から来た同族の遺伝子と全く同じだったの。" - Tardis下記は種族が同じキャラクターのページへのリンク一覧です。...

野生の毒沼

野生の毒沼EnglishVenomous wild swamp 属性 VenomFeral地理情報地名の由来属性からの連想属性解説[]Venom - A deadly essence that can...

部分フィルタ

部分フィルタ上フィルタオブジェクト部分フィルタとは、部分フィルタに追加されたフィルタ効果を画面の一部分のみに反映させるフィルタオブジェクトの1つである。※フィルタによっては正しく動作しません。目次1 ...

輪郭系エフェクト

輪郭系エフェクト上フィルタオブジェクトこの記事では、「オブジェクトの輪郭」を変更する系のフィルタオブジェクトについて説明する。目次1 凸エッジ1.1 ◇幅1.2 ◇高さ1.3 ◇角度2 エッジ抽出2....

設定ダイアログ/トラックバー

設定ダイアログ/トラックバー上設定ダイアログ目次1 移動の種類2 基本の移動方法2.1 直線移動2.2 曲線移動2.3 加減速移動2.4 瞬間移動2.5 中間点無視2.6 移動量指定2.7 ランダム移...

設定ダイアログ

設定ダイアログ上拡張編集オブジェクトの追加やオブジェクト自体をダブルクリックすることで設定ダイアログが表示されます。表示中にダブルクリックで閉じることも出来ます。目次1 操作方法2 右クリックメニュー...

色関係エフェクト

色関係エフェクト上フィルタオブジェクトこの記事では、色関係のフィルタオブジェクトについて説明する。目次1 色調補正1.1 ◇明るさ1.2 ◇コントラスト1.3 ◇色相1.4 ◇輝度1.5 ◇彩度1.6...

自演コメント風スクリプト

Aviutl 自演コメント風スクリプト anm 種類使用種別アニメーション効果動作種別文字列絵画外部情報作者gometh公開日2017/12/2自演コメントとは、gometh氏によるanm拡張子のAv...

直方体展開

Aviutl 直方体展開 anm 種類使用種別アニメーション効果動作種別3D絵画外部情報作者ティム公開日2011/5/27直方体展開とは、ティム氏によるanm拡張子のAviutlスクリプトの1つである...

盗聴器

この記事は種族検索のためのページです。Tardis"元人間の物人の遺伝子は物人の世界から来た同族の遺伝子と全く同じだったの。" - Tardis下記は種族が同じキャラクターのページへのリンク一覧です。...

液状荒野

液状荒野EnglishLiquid wilderness 属性 SiltPlague地理情報地名の由来属性からの連想属性解説[]Silt - Weaker version of Stone in so...

歪み系エフェクト

歪み系エフェクト上フィルタオブジェクトこの記事では、歪み関係のフィルタオブジェクトについて説明する。目次1 ミラー1.1 ◇透明度1.2 ◇減衰1.3 ◇境目調整1.4 ◇ミラーの方向1.5 ◇中心の...

極座標変換+ぼかしミラー

Aviutl 極座標変換+ぼかしミラー anm 種類使用種別アニメーション効果動作種別基本機能の拡張、2D絵画、3D絵画外部情報作者ティム公開日2012/3/4極座標変換+ぼかしミラーとは、ティム氏に...

本、辞書

この記事は種族検索のためのページです。Tardis"元人間の物人の遺伝子は物人の世界から来た同族の遺伝子と全く同じだったの。" - Tardis下記は種族が同じキャラクターのページへのリンク一覧です。...