Hatena::Grouphackathon

zrail (a.k.a. tobira17, h14i, ...) の Learning Log

2010-04-26

[][]Lua の復習とかしてみる その 5 04:44 Lua の復習とかしてみる その 5 - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - Lua の復習とかしてみる その 5 - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

今日は第 6 章。

6.1

この章ではリーグ戦の対戦表を作るみたい。

6.2

テーブルを使ったデータ構造の例。

配列とハッシュを同じテーブルに突っ込んでも、ちゃんと区別して扱ってくれるらしい。

one = { "australia", "japan", score = { 3, 1 } }

print(one[1])
print(one[2])
print(one.score[1])
print(one.score[2])

for key, val in pairs(one) do
  print(key, val)
end

この汎用 for ループだと key が score になったときに表示がおかしくなるな。

こういうときってどうすればいいんだろう。

6.3

おお、 dofile() っていう便利そうな関数が出てきた。

ファイルを読み込んで実行する関数らしい。

プラグインとか作るときに使えるのかな。

6.4

6 章で作るプログラムの概要。

6.5

Luaプログラマ以外のチームメンバもデータを編集したり、プログラムを開発できるようにするために生み出された言語だよ、という話。

馴れないうちは大変かも知れないけど、少しずつ弄って遊んでどんどん試してみて下さいというような著者からの励ましの文章も。

6.6

6 章の話題のメインとなる、集計プログラムのソースコード

関数定義を除いた手続きのメイン部分は 2 行だけ。全体では 68 行。

関数の中で別の関数を定義するのって可読性上がるのかなー。確かに説明するときは説明が必要になったときに定義が出てくるから説明しやすいけど、別個に定義したほうが見易い気がするなぁ。

単に僕が、関数の中で関数が定義できる言語のソースに馴れてないだけって奴かも知れないけど。

6.7

6 章のまとめ。

Lua はそういった入出力処理は他に任せて、計算、判断、記憶の 3 つの仕事に専念します。