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

■ 配列(Array)



    


___

■ 配列

POINT 配列はテーブルのキーを数値にすることで利用する。 テーブルの特殊系にすぎない。 . Table{ Arr{} } -- Constructor 起動( この処理は必須 ) a = {};
  -- list 表記
  --    初期化リストつき
  local a = { "x", "y", "z" };
  print( a[1] );

数値 index として扱う
    a = {}

    -- 追加する
    a[ #a + 1 ] = "a"
    a[ #a + 1 ] = "b"

    -- イテレートする
    for i = 1, #a do
        local s = a[ i ]
        print( s )
    end    
配列の要素数をとるには 単項演算子( # ), table.getn(), table.maxn() をつかう
    -- 3
    a = { 2, 5, 6 }
    print( #a )

    -- 3
    a = { "a", "b", "c" }
    table.getn( a ); 

    -- 3
    a = { "a", "b", "c" }
    table.maxn( a ); 
WARNING テーブル内の最大の数値インデックス値を返す。 インデックスに数値が使われていない場合は 0 が返る
    -- 0
    local a = { a=1, b=2 }
    print( table.maxn( a ) )
    print( table.getn( a ) )
    print( #a ) )
maxn はテーブル内の最大の数値インデックス値を返す。 #, getn() は連続している最大の数値インデックス値を返す。
    local a = {}
    a[1] = 0;
    a[2] = 0;
    a[100] = 0;
    
    -- 2
    print( #a )
    print( table.getn( a ) )

    -- 100
    print( table.maxn( a ) )
  a[ "key" ] = 10;  // 文字 KEY による代入
  a[ 3 ] = 20;      // 数値を使用すれば, 配列としても可能
  b = a;            // 参照.
  print(b.x)        // == b["x"];  BAD b.0
b.y = "test"; print( b.y ); // index 1 の値を削除. b[3] = nil; POINT 開始 idx == 1 要素数は可変. 使う前の定義が必要 -> arr = {}; 空要素を取得しようとすると, nil が返る。 -- 疎行列 -- ( 配列index(索引)は連続している必要はない ) a[1] = 0; a[2] = 0; a[4] = 0; a[5] = 0; print( #a ) = 2; 変数と同じで、値のないインデックスを参照すると nil が返る。

    a = { "x", "y", "z" };
    -- nil
    print( a[4] );  
___

■ 追加

table.insert() でテーブルの末尾のインデックスに追加する。 テーブルの添え字は数値インデックスになる。
    tbl = {}

    -- index 1 に追加
    table.insert(tbl, "A")  

    -- index 2
    table.insert(tbl, "B")

    -- index3
    table.insert(tbl, "C")
index を指定した場合は、その位置に追加されて残りは後ろにシフトされる。
    -- D, A, B, C
    table.insert(tbl, 1, "D")
___

■ 削除

SYNTAX table.remove( table, number )
    local tbl = {}
    table.insert(tbl, "foo")  
    table.insert(tbl, "bar")    

    -- 要素ではなく index を指定する
    table.remove( tbl, "foo" );


    local tbl = { 2, 4, 6 }
    table.remove( tbl, 1 );
    print ( #tbl )

-- イテレートする。 for i=1, #a, 1 do print(a[i]) end table.foreach( t, func ); -- call func( idx, val );
WARNING 間違った field を指定した場合は, nil がかえるので, spellmiss が素通りする可能性あり.
___

■ 結合

SYNTAX table.concat (table [, sep [, i [, j ) 要素を指定した文字列で結合して返す
    a = {1,2,3}

    -- 1__2__3
    table.concat( a, "__" )

結合する要素の数を指定する
    -- 1__2
    table.concat( a, "__", 1, 2 )
___

■ 2次元配列

1次元配列を利用して, 2次元配列を作成する. 配列の要素を配列にする。
   m = {};
   m[1] = {};
   m[2] = {};

   m[1][1] = 10;

   print( m[1][1] );
___

■ Lua 言語の字句の構成

Lua が使用する, 内部 global変数. _VERSION
___

■ 値と型

[ 変数は型をもたず ], [ 値が型をもつ ] -> つまり 型自身はある. 変数には[ 宣言 ]は不要. -> 変数には型という概念がないから. 代入, 引数わたし, 関数の返値は すべて [ 参照 ]
















NINJAIDX 18