質問

私はウェブサイトから情報をマイニングしていますが、私がしなければならないことの1つは、ページが私に別の情報に与えてくれるものから情報を変更し、その2番目の情報を変数に変えることです。ただし、これを行う方法を理解することはできません。

以下の表を与えてください:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}

...どうすればそうすることができますか:私がそうするとき:

adj = string.match(page,'Adjective: (%w+)')

...そしてそれは一致します big, 、の価値を返すことができます tall しかし、それをテーブルに変えますか?私は機能を使ってみましたが、うまくいきませんでした、そして私はのようなことをしたくありません t[adj]={} サブテーブルを作りたくないからです t.

顔をじっと見つめているように感じますが、空白を描いています。

説明のために編集:

私は自分が必要とする形容詞を取得する方法、または大きいものの価値を示す方法などを知っています。私が話しているのはこれを行う能力です:

  1. 見つかった形容詞に基づいて値を見つけます。この場合、 big 値が見つかりました、値はです tall.
  2. 見つかった値を取得します(この場合、もう一度、 tall)そして、その値を独自のテーブルに変えます。それから私は上からテーブルを持っています、そして、呼ばれる新しいものが入力されていない新しいものがあります tall. 。そうすれば、情報を入力した後、 tall["somekeyvalue"]

それは今もう少し理にかなっていますか?

役に立ちましたか?

解決

グローバル変数に悩まされていない場合は、グローバル環境テーブルを使用できます。

(t [adj]による)価値を取得した後、次のようなテーブルを作成できます。

_G[t[adj]] = {}

その後、テーブルにアクセスできるようになります 高い どこにでも

他のヒント

形容詞と一致するとき、あなたはあなたのテーブルでそれを調べて、そこに持っているエイリアスを返したいと思うように聞こえます。

Luaでそれを行うには、使用します [] テーブルを調べるには:

t = {big = "tall", little = "short", fat = "wide", skinny = "thin"}
adj = string.match(page,'Adjective: (%w+)')
print(t[adj])

それが「形容詞:大きな」と一致する場合 page, 、印刷します tall. 。これは、あなたの望むことですか? 「それをテーブルに変える」ことについての部分は私に混乱しています。

LUAで動的変数を作成する方法がわからないので、作成した他のテーブルのコンテナとなるテーブルを作成することをお勧めします。追加する要素を含むテーブルになりましょう。

この例をご覧ください:

-- you have to initialize it
result = {}
result.tall = {}
result.little = {}

--insert the elements that can be another tables or not
table.insert (result.tall, 'enormous')
table.insert (result.little , {s = 'short'})

-- so you can access it later
for k,v in pairs(result.tall) do
    print(k,v)
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top