3

Garry の mod Lua でテーブルの値に関連付けられたキーを見つけようとしていますが、テーブルではないかのようにエラーが発生します。

これは、私が保守/修正している他の誰かのコードのゲーム クラッシュ バグに対するより大きな解決策の一部です。

要するに、キーの値に基づいてキーの番号を取得する必要があります。この問題があるシンプルで短いコード:


function starttest()
     local tbl = {"a", "b", "c"}

     local printme = FindValueInTable(tbl, "c")

print(printme)

end

function FindValueInTable(table, value)
     for k, v in table do --errors on this line saying "attempt to call a table value"
          if v == value then
               return k
          end
     end
     return nil
end

table文字通りテーブルなので、ここで何をすべきか困惑しています。どうすればfor k,v in table本当に失敗するのでしょうか?

私が期待している結果は、 の値を持つ数値キーを返すことですvalue。したがってvalue == "c"table[3]たまたま値がある場合は、結果として"c"返されるはずです。3

4

1 に答える 1