2011-10-28 8 views
7

ちょうどLuaを選んでテーブルを構築する方法を理解しようとしています。 私は検索を行い、table.insertに関する情報を見つけましたが、私が見つけたすべての例は、数字のインデックスだけを必要とするようですが、私がしたいのはキーのペアを追加することです。Luaテーブルにキーペアを挿入する

これが有効なのだろうか?

my_table = {} 
    my_table.insert(key = "Table Key", val = "Table Value") 

これは、ループ内で行われるだろうと私は後で内容にアクセスできるようにする必要があります。おかげで

答えて

19

テーブルを作成してデータを入力するには、基本的に2つの方法があります。

最初にtable constructorを使用してテーブルを作成して一度に入力します。

tab = {} 
tab["somekey"] = "some value" -- these two lines ... 
tab.somekey = "some value" -- ... are equivalent 

注:あなたが事前にあっ欲しいもの値が分からない場合は、あなたが最初に{}を使用してテーブルを作成し、[]演算子を使用して、それを埋めることができ

tab = { 
    keyone = "first value",  -- this will be available as tab.keyone or tab["keyone"] 
    ["keytwo"] = "second value", -- this uses the full syntax 
} 

を次のように行われています2番目の(ドット)構文の砂糖を使用できるのは、そのキーが "識別子"の規則に従う文字列である場合のみです。つまり、文字またはアンダースコアで始まり、文字、数字、およびアンダースコアのみを含みます。

P.S.:もちろん、あなたは、2つの方法を組み合わせることができますテーブルコンストラクタでテーブルを作成し、[]オペレータ使用して残りの部分を埋める:

tab = { type = 'list' } 
tab.key1 = 'value one' 
tab['key2'] = 'value two' 
+0

説明をありがとう – Dayo

1

はこれが答えなければなりませんに表示されます

for k, v in pairs(my_table) do 
     ... 
    end 

my_table = {} 
Key = "Table Key" 
-- my_table.Key = "Table Value" 
my_table[Key] = "Table Value" 

私のために仕事をしました。

+0

はい、しかし、あなたは'Keyを必要としません= "テーブルキー"の行。 – kikito

+2

-1:この例は実際には機能しません。 'my_table.Key'は' my_table [Key] 'と同じものではありません。 –

+1

私は新しい言語を理解しようとしたので、私に投票した人の非常に良い。これは一歩近づき、後で "my_table [Key]"が機能することを理解しました。 – Dayo

関連する問題