Luaレッスン3.2「表示する内容を変える」和訳

原典:

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

レッスン3.2「表示する内容を変える」 

これまで作成したきたスクリプトを少しいじるだけで、複数行を表示する短いドキュメントがずっと便利なツールへと変わります。 

前回までのスクリプトでは、以下のコマンド・ラインでテーブルの各行を作成しました。 

table[k] = "Line #"..k 

これは、kの現在の値と文字列"Line #"とを連結するコマンドですので、最初の行は"Line #1"となり、順次、"Line #2"、"Line #3"...のように繰り返されます。 

var.recallコマンドの働きは、TI-Nspireの変数の現在値を取得し、それをLuaで使えるようにすることでしたね。このレッスンの例では、表示する行数を取得する手段としてvar.recallを使いました。 

さて今度は、たとえばline1という変数を設定し、その内容を最初の行にしてみましょう。そうしてline2の内容を2行目に、line3の内容を3行目に......というふうにしてみます。表示する内容は、簡単に制御できるうえ、TI-Nspireでいつでも変更できます。  

この処理は、上のコマンド・ラインを次のように変更するだけでできます。 

table[k] = (var.recall("line"..k) or "Line #"..k) 

上のコマンド・ラインを良く見て、どういう動作をするのか考えてください。 

k = 1のとき、var.recallは、line1という名前の変数を探し、それをtable[1]としてストアします(テーブル変数tableの先頭のエントリーになるということです)。見つからない場合は、ただの"Line #1"という行になります(ブランクにしても良いでしょう)。 

k = 2のときは、変数line2の現在値としてtable[2]が定義されます。以降は同様に繰り返されます。 

この変数の値は、TI-Nspireドキュメントの変数にストアするや、すぐにLuaスクリプト・ページに表示されます。

-------------------------------------------------------------

(訳註)今回の実行例

f:id:ti-nspire:20140922115002j:plain

TI-Nspireドキュメント内(左下の枠)で変数に値を代入すると、すぐにスクリプト画面(上の枠)に反映された。

f:id:ti-nspire:20140922115027j:plain