単純な配列へのアクセス

luaスクリプトで、グローバルにこんな配列があったとして

test={3,4,5}

これにアクセスする

    //グローバル配列へのアクセス
    lua_getglobal(L, "test");

    lua_rawgeti(L, -1, 1);
    printf("%f\n",lua_tonumber(L,-1));
    lua_pop(L, 1);
    lua_rawgeti(L, -1, 2);
    printf("%f\n",lua_tonumber(L,-1));
    lua_pop(L, 1);
    lua_rawgeti(L, -1, 3);
    printf("%f\n",lua_tonumber(L,-1));
    lua_settop(L, 0);
  • 注意
    • 配列インデックスの初期値は1
    • rawgetiを実行した時点で、スタックには値とテーブルが格納されている
    • lua_tonumberを実行しても値はポップしないので、明示的にlua_popしてやること
    • 次の作業の前にスタックを空にしておいた方がいいだろう