2006-04-06から1日間の記事一覧

next

さて、あと ltable.c で見ていない関数は luaH_next だ。これは lua の next 関数に対応する(API の lua_next はけっきょく luaH_next を呼んでいる)。 next は、引数としてテーブルとインデックスを取る。インデックスを省略すると「最初の」キーと値のペア…

ltable [2] テーブルに値をセットする

セット系の関数は次の2つ。 TObject *luaH_set (lua_State *L, Table *t, const TObject *key) { const TObject *p = luaH_get(t, key); t->flags = 0; if (p != &luaO_nilobject) return cast(TObject *, p); else { if (ttisnil(key)) luaG_runerror(L, "t…

ltable

テーブルは Lua の最も重要なデータ構造だ。というか、コレクションタイプのデータ構造をこれしか持たない(配列とかは Lua にはない)。さて、ヘッダファイルを見ると、 luaH_ なるプレフィクス(Hはハッシュ表の H だろう)を持つ関数たちが用意されている。ま…

lstring の補足

ところで先週書きながら「これ、文字列が書き変わったらどうなるのだろう」というのが気になっていた。のだが、 Lua の言語仕様上、文字列は immutable なのだね。したがって、文字列が書き変わることはない(newstr内でコピーしているから、 Lua のあずかり…