テーブルはTTSゲームの大部分を占めるから重要だよ!
ここにテーブルのスクリプトがある↓
mytable = {}
普通のスクリプトだったら下の項目設定がいるんじゃないかって?
いりません。 しかし、あえて、下のように入力すると・・・
mytable.thisisakey = 'value'
or
mytable['thisisakey'] = 'value'
テーブルは次のようになります
key/index |
value |
---|
thisisakey |
'value' |
テーブルには、どのような値でもどんなキーでも格納できます。 キーは一意ですが、値は異なります。 次のコードの後に、テーブルの外観を把握してみてください。
mytable.thisisakey2 = 'value' mytable.thisisakey = 1 mytable.thisisalsoakey =
1
key/index |
value |
---|
thisisakey |
1 |
thisisakey2 |
'value' |
thisisalsoakey |
1 |
ただし、キーの代わりにインデックスを使用できます。 次の2つのスニペットで同じテーブルが作成されます。
mytable = {'data', 'moredata'}
mytable = {} mytable[1] = 'data' mytable[2] = 'moredata'
key/index |
value |
---|
1 |
'data' |
2 |
'moredata' |
テーブルから情報を取得する方法はいくつかあります。 キーと値のペアを持つテーブルがある場合は、このようにすることができます。
kはキーであり、vはテーブル内のそのキーの値です。
for k,v in pairs(mytable) do print(k,v) end
キーの代わりにインデックスを持つテーブルがある場合は、この方法でも実行できます。 #mytableはテーブルの長さです。
これは、索引を持つ表に対してのみ機能します。
for i=1,#mytable do print(mytable[i]) end
最後の注意として、テーブルにテーブルを入れることもできます
mytable = {} mytable.table = {} mytable.something = 'data' mytable.table.table
= {} mytable.table.table.table = {'hello'}
こんな風になります。
key/index |
value |
---|
table |
key/index |
value |
---|
table |
key/index |
value |
---|
table |
key/index |
value |
---|
1 |
'hello' |
|
|
|
something |
'data' |
ときには、このようなことをしている人がいることがあります
mytable = {['something'] = 'value', ['somethingelse'] = 'value2'}
↓これと同じことです。
mytable = {something = 'value', somethingelse = 'value2'}
唯一の違いは、入力する余分なテキストがあることです。括弧を使用しない場合は、キーに数字を使用することはできません
mytable = {['123key'] = 1} -- ok mytable = {123key = 1} -- not ok