トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
Lua
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ metatable(MetaMethod)


  POINT
    MetaMethod を利用して, Lua を拡張(カスタマイズ)できる。


___

■ 自分で作成した型を調べる

type( data ) == "table" if ( getmetatable( g ) == rgbmeta ) then print("custom data"); end
___

■ 配列の上限値を設定する

( MetaMethod を利用することで テーブル要素の参照をカスタマイズする __index, __newindex を上書きする. __index : val = tbl["name"]; // 参照. __newindex : tbl["name"] = "foo"; // 代入 MetaMethod の定義中に, MetaMethod を呼ぶのを防ぐのは, rawget, rawset() -- rawget( tbl, idx ); val = tbl[idx] -- rawset( tbl, idx, val ); tbl[idx] = val -- -- MetaTbl -- この tbl EventKey に対して OverWrite 関数をセットする. tblTest = { limit = 3 }; -- -- tbl を参照する [] 演算子を overwrite する -- tblTest.__index = function( t, idx ) if ( idx > tblTest.limit ) then error("invalid dana idx"); end return rawget( t, idx ); end -- メタテーブルをセットする。 tt = {} setmetatable( tt, tblTest ); -- テスト print( tt[10] );
















NINJAIDX 18