u16suzuの blog

日々学んだことのメモブログです。

2012-05-12から1日間の記事一覧

luaでコルーチン

coroutineを使うと、メソッドを途中まで実行して、他のメソッドに移ったりできる。 これを利用することで、時間のかかる処理で画面が固まったりできるのを防ぐことが可能。サンプルソースはあとで書く。

lua, for で配列、ハッシュの中身を全部表示する

配列を全部表示 a = {1, 2, 3} for v in pairs(a) do print( v ) end ハッシュを全部表示 h = {a=1, b=2, c=3} for k, v in pairs(h) do print( k, v ) end あとでやる unpack, next

lua の メタテーブルを使ってみる

メタテーブルを使うと、演算子オーバーロドと、テーブルをクラスのように使うことができる。 演算子オーバーロード __add のように__から始まるメソッドはメタメソッドという。 __indexがでの取得で、__newindexがでの値セット時に呼ばれるメタメソッド。 こ…

luaのgetfenvについて

getfenv()は引数のファンクションのスコープを返す。 function ai() print(33) end print( getfenv( ai() ) )出力はこんな感じ グローバルのテーブルのオブジェクトIDが出てるっぽい。 33 table: 0x7fc8f94011d0

luaのpcalの使い方

try-catch みたいな感じ。 function ai() error("a") print(33) end local flag, ret = pcall( ai ) if not flag then print(44) end

lua文法自分用メモ

コメント -- 1 line--[[ multi line ]]-- print print(33) = 'hoge' = は対話環境で飲み使える。 =の場合はカッコ要らない。 変数の型を得る type("hi") 型の種類 nil ブーリアン 数値(number) 文字列(string) 関数 ユーザーデータ: cのソースを格納 スレッ…

lua で fizzbuzz

for i=1, 15 do str = "" if( i%3 == 0) then str = "fizz" end if( i%5 == 0) then str = str.."buzz" end if( str == "") then print( i) else print( str) end end