Luaレッスン2.1「Luaのテーブル」和訳

原典:

http://compasstech.com.au/TNS_Authoring/Scripting/script_tut2.html

レッスン2.1:Luaのテーブル 

Luaで変数を整理するときやデータを処理するときに重要な役割を果たすのが「テーブル」です。テーブルとは複数のエントリーを整理してリスト形式にまとめたものであるとお考えください。各エントリーにはインデックスをつけることができます。たとえば、1"two""mine"という3つのエントリーで構成されているmy_tableというテーブルがあるとします。この場合、各エントリーは簡単に参照できます。my_table[1]とすれば1を、my_table[2]とすれば文字列"two"を、my_table[3]とすれば文字列"mine"を参照することができます。TI-Nspireでリストを処理するのとまったく同じ方法です。Luaには非常に強力なテーブル管理機能がいくつかありますが、テーブルの扱いはLuaもTI-Nspireも似ているということを是非知っておいてください。

今回の例では、ページにテキストを複数行表示してみます。同じことは、縦軸の位置を変えながらdrawStringコマンドを何回か繰り返しても実行できます。しかしもう少しシステマチックな方法を使ったほうが有利ですし、その過程でテーブルの使い方についても少し学べます。 

前回のレッスンでは、ローカル変数というものを紹介し、ウィンドウの幅、高さをそれぞれ表す手段としてw、hというローカル変数を作成しました。こうした変数の値は、固定されているわけではなく、状況に応じてダイナミックに変化しますので、今回の例に示すように、ハンドヘルド・ビューとコンピューター・ビューとを切り替えたり、コンピューター・ビューのサイズを変更したり、ウィンドウを分割したりしても、ページの効果は変化しません。 

今回の例では、下の2つのローカル変数を新たに定義します。
(1)空の中括弧({ })でテーブル自体を変数として定義します(TI-Nspireでリストを定義するのとまったく同じ)。変数名はtableとします。
(2)表示する行数の値を変数linecountとして定義します。