2011-05-25から1日間の記事一覧

zip関数(2)

Lua

複数のテーブル対応版。テーブルのリスト部分のみに対応。 function zip(...) local args = {...} return coroutine.wrap(function () local t = {} for i, arg in ipairs(args) do local ff,tt,nn = ipairs(arg) t[arg] = {ff,tt,nn} end local is_end = fa…

メタテーブル

Lua

文字列型の値はデフォルトでメタテーブルが設定されている。また、メタテーブルとして、{__index=string}が設定されているので、stringに関数を追加すれば、それが文字列のメソッドとなる。 > print(getmetatable(1)) --数値にはメタテーブルが設定されてい…

EAFP

Lua

EAFPをするには、pcall()を使用する。 > function foo(arg) >> error('error message') >> return arg >> end > > isok, ret = pcall(foo, 99) --エラーが発生しない > print(isok, ret) false stdin:2: error message > > function bar() >> assert(false) …