2010-11-01から1ヶ月間の記事一覧
既存のプログラムにLuaを組み込む場合のシナリオなど。これで最後かー。 C言語が主体の場合 基本的にC言語が主体で、ところどころLuaを使いたい場合はLuaで処理が終わったらすぐに戻ってくるように作るといいっぽい。 設定ファイルそのものをLuaスクリプトに…
C言語とLuaの連携などなど。スタックの説明のあたりがさっぱりだったのでそこは後で…… C言語の自作関数をLuaから使う C言語側で作った自作関数を登録してLuaから呼ぶ。 最初にC言語本体を。 /* aaa.c */ #include <lua.h> #include <lualib.h> #include <lauxlib.h> int aaa(lua_State* L</lauxlib.h></lualib.h></lua.h>…
連想配列――テーブルを使ったcase文やスクリプトのモジュール化、C言語で作った共有ライブラリの関数を呼ぶなど。他はスルー。 case文 Luaにはもともとcase/switch文が存在しないので、それをテーブルで作ってしまうやりかた。 > case = case or { >> a = fun…
親機と子機の接続に奔走したお話、を兼ねた備忘録。まあ、単なる知識不足なのですけど。 あと、大人しくAOSSを使わなかったところとか。初心者が背伸びするもんじゃないとは思いつつ。 今までは1階から2階までながーいLANケーブルを引っ張ってきて、有線LAN…
前回の続き、配列の上限値を設定したりグローバル変数を宣言できなくしたりオブジェクト指向を取り入れてみたり。 配列の上限値を設定する 前回のようにsetmetatable関数でまたしてもメタメソッドを上書きして、添字でアクセスされた場合の動作を書き換える…
8章はアルゴリズムとかデータの扱いなので飛ばして9章、メタメソッドや自作データ型やオブジェクト指向を取り入れたりなど。急にレベルが上がった気がする…! メタメソッド setmetatable関数を使ってテーブルの演算子の動作を変えてみる。 > data1 = {str = …
眠くてできなかった部分、多値を返す関数やレキシカルスコープなどについて。あとコラムの高階関数も。 多値を返す関数 代入時に","で区切って同時に代入したり、変数同士を入れ替えたり。 > a, b = 1, 2 > print(a) 1 > print(b) 2 > a, b = b, a > print(a…
文字列、テーブルの仕組みや、GCの扱い、データ型などちょっと奥の深い章。今回はなかなかおもしろそう。 文字列と登録台帳の仕組み 文字列は宣言された時点で登録台帳に登録され、2つ目以降は登録台帳の同じものを指すようになる…らしい。 > a = "aaa" -- "…
データの読み込みやテーブル内のデータの配置などの章。今回もかなりスルー。 Pascalでおなじみ、関数内関数の宣言。 > function a() >> print("aa") >> function b() >> print("function b()") >> end >> b() >> end > a() aa function b() Pascalって感じ…
第4章――文字列などの各種ライブラリの使い方などの章。 文字列ライブラリ 最初にstring.gsubで全置換を。 > a = string.gsub("123abc123def", "[1-3]+", "?") > print(a) ?abc?def string.matchで検索を。 > a = string.match("123456789", "[1-4]+") > prin…
配列や連想配列、ソートなどの章。関数の使い方などが多くなってきたので割とスルー気味。。。 テーブルの走査にfor文とpairs関数を。 > for key, value in pairs({aaa = 111, bbb = 222, ccc = 333}) do >> print("key: " .. key) >> print("val: " .. valu…
昨日に続いて今夜は第3章を。関数、ローカル変数、文字列などの章です。 関数宣言 関数は"function 〜 end"で宣言し、値は"return"で返します。returnはC言語などと同じく、その場で関数を抜けます。 > function times(op1, op2) >> return op1 * op2 >> end…
昨日に続いて今夜は第2章へ進みます。制御構文や配列などの章です。 if文と比較演算子 if文は"if 〜 then"と表記します。PascalやRubyのようです。まあ、Rubyはthenを省略できますが。 > a = 1 > if a == 1 then >> print('a is 1') >> end a is 1 C言語など…
入門Luaプログラミング作者: 上野豊出版社/メーカー: ソフトバンククリエイティブ発売日: 2007/12/22メディア: 単行本購入: 4人 クリック: 144回この商品を含むブログ (35件) を見るこの本を買ったものの読まずに積みっぱなしでしたが、Luaを実行できる環境…
環境:Windows7 Home Premium on VirtualBox3.2.10 r66523 Luaが前から気になっていたので使ってみようかと思い立ちました。思い立ったが吉日。 Lua BinariesやGoogle Code Archive - Long-term storage for Google Code Project Hosting.でインストールすれ…
「JavaとかActionScriptの良書おしえてください(>_CODE COMPLETE 第2版 上 完全なプログラミングを目指して作者: スティーブマコネル,Steve McConnell,クイープ出版社/メーカー: 日経BP社発売日: 2005/03/26メディア: 単行本購入: 44人 クリック: 1,166回こ…