38

Lua では、次の方法でテーブルを作成できます。

local t = { 1, 2, 3, 4, 5 }

ただし、連想テーブルを作成したい場合は、次の方法で行う必要があります。

local t = {}
t['foo'] = 1
t['bar'] = 2

以下はエラーになります:

local t = { 'foo' = 1, 'bar' = 2 }

私の最初のコードスニペットと同様にそれを行う方法はありますか?

4

3 に答える 3

70

これを書く正しい方法は次のいずれかです

local t = { foo = 1, bar = 2}

または、テーブル内のキーが有効な識別子でない場合:

local t = { ["one key"] = 1, ["another key"] = 2}
于 2009-02-04T21:08:33.093 に答える
10

このように見れば、もう少しうまく機能し、理解しやすいと思います

local tablename = {["key"]="value",
                   ["key1"]="value",
                   ...}

結果の検索: tablename.key=value

辞書としての表

テーブルは、配列と同様に、数値または順番にインデックス付けされていない情報を格納するためにも使用できます。これらのストレージ タイプは、ディクショナリ、連想配列、ハッシュ、またはマッピング タイプと呼ばれることもあります。要素のペアがキーと値を持つ辞書という用語を使用します。キーは、関連付けられた値を設定および取得するために使用されます。配列と同様に、 table[key] = value 形式を使用して要素をテーブルに挿入できることに注意してください。キーは数値である必要はありません。文字列でもかまいません。さらに言えば、他のほぼすべての Lua オブジェクト (nil または 0/0 を除く) でもかまいません。いくつかのキーと値のペアを含むテーブルを作成しましょう。

> t = { apple="green", orange="orange", banana="yellow" }
> for k,v in pairs(t) do print(k,v) end
apple   green
orange  orange
banana  yellow

から: http://lua-users.org/wiki/TablesTutorial

于 2011-12-06T09:24:23.760 に答える
1

文字列値と一致する文字列キーを持つ連想配列を初期化するには、使用する必要があります

local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};

しかしそうではない

local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};
于 2011-06-01T10:10:30.860 に答える