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

■ テーブル(Table)


  Lua にはデータを構造化するのはテーブルのみ。
  キーと値の組の集合からなる、連想配列のこと。

    -- table の生成
    tbl = { name="xxx", age=10, price=0 }

    -- テーブルへのメンバのアクセスには [] を使う。
    -- .key の表記は [ "key" ] と同じ。
    tbl[ "key" ]
    tbl.key

    -- 指定したフィールドがない場合は nil が返る
    tbl.foo;

    -- field の追加
    tbl.foo = "bar";

WARNING tbl.name 表記は tbl[ "name" ] と同じ。 次の処理は思ったとおりの動作をしない。
    function isKeyExist( tbl, key ) 
      if ( tbl.key !~ nil ) then
      
      end
    end
tbl.key は tbl[ "key" ] とみなされる。 そこで [ key ] とすれば正しく動作する。
      if ( tbl[key] !~ nil ) then
      end
___

■ 追加.削除

    tbl[ "age" ] = 10
    tbl[ "name" ] = "test"

    -- キーは数値でも指定できる
    tbl[ 1 ] = 10;


    -- 削除をするには nil をセットする
    tbl[ "name" ] = nil


    -- iterate すると削減されたことがわかる
    for key, val in pairs( tbl ) do
       print ( key )
       print ( val )
    end

___

■ ソート(sort)

SYNTAX table.sort( array [, function ] ) DESC 配列を昇順にソートする。
       local a = {7, 5, 3};
       table.sort(a);

       -- 結果を表示
       for i=1, #a do
          print(a[i]);
       end
比較用の関数を指定する。
    a = {}
    a[1] = { name="a", price=300 };
    a[2] = { name="b", price=100 };
    a[3] = { name="c", price=200 };

    function cmpfunc( a, b )
       return a.price <  b.price
    end

    table.sort( a, cmpfunc ); 

    for i=1, #a do
       print( a[i].price );
    end
___

■ foreach(イテレート)

   for t, val in pairs( members ) do
      for k, v in pairs(val) do
         print( k, v );
      end
   end

  while で利用する
   k, v = next( player1 );
   while (k) do
      print( v );
      k, v = next( player1, k );
   end

















NINJAIDX 18