lua関数パラメータ伝達

566 ワード

luaでは、javaの転送メカニズムと同様に、すべてのタイプの値が直接コピーされ、C/C++の参照表現はありません.
関数の内部修正の効果を達成するには、ポインタを渡すことで完了します.
ここでのポインタとは、テーブルを渡す際に、そのデータアドレスを記録する変数が1つしか渡されず、その後、関数内でその変数の内部要素を操作すると、元のテーブルに影響を与えるデータ構造を指す.ただし、この変数を直接操作すると、影響はありません.たとえば、次のコードがあります.
操作テーブルメンバー変数(外部から入力されたtableTempのvalue値も変更されます)
function TestFunc(tableTemp)
    tableTemp.value = 2
end

操作テーブル自体(外部からのtableTemp値は影響を受けません)
function TestFunc(tableTemp)
    tableTemp = {}
end

C++と訳すと,関数パラメータ伝達ではポインタ変数が1つだけ伝達される.
もちろん、ベースのデータ構造は影響を受けず、直接コピー転送されます.