タグ付けされた質問 「lua-table」

8
Luaの配列(テーブル)が0ではなく1から始まるのはなぜですか?
Luaのこの部分の決定の背後にある根拠を理解していません。インデックス作成が1から始まるのはなぜですか?私は(他の多くの人がしたように)この素晴らしい論文を読みました。学習とプログラミングがとても楽しい言語の奇妙な一面に思えます。誤解しないでください、Luaは素晴らしいだけですが、どこかに説明があるはずです。(ウェブで)私が見つけたもののほとんどは、インデックスが1から始まると言っています。 その設計者が主題について言ったことを読むことは非常に興味深いでしょう。 私はLuaの「非常に」初心者であることに注意してください。
125 arrays  lua  lua-table 

8
Luaテーブルが空である(エントリが含まれていない)かどうかを確認する最も効率的な方法は?
テーブルが空である(つまり、現在配列スタイルの値もdictスタイルの値も含まれていない)かどうかを判断する最も効率的な方法は何ですか? 現在、私は使用していnext()ます: if not next(myTable) then -- Table is empty end より効率的な方法はありますか? 注:#演算子は、テーブル内の配列スタイルの値のみを操作するため、ここでは十分ではありません。両方とも0を返すため、#{test=2}区別できません。#{}また、テーブル変数がnil十分でないかどうかを確認しても、nil値ではなく、エントリが0のテーブル(つまり{})。
120 lua  lua-table 

4
Luaでテーブルに要素が含まれているかどうかを確認するにはどうすればよいですか?
テーブルに値が含まれているかどうかを確認する方法はありますか?私は自分の(素朴な)機能を持っていますが、そのために「公式」なものが存在するのではないかと思っていました。またはもっと効率的なもの... function table.contains(table, element) for _, value in pairs(table) do if value == element then return true end end return false end ちなみに、この関数を使用している主な理由は、テーブルをセットとして使用することです。つまり、重複する要素がないためです。他に使用できるものはありますか?

1
キーでluaテーブルエントリを削除する方法
ハッシュマップとして使用するluaテーブルがあります。つまり、文字列キーを使用します。 local map = { foo = 1, bar = 2 } キーで識別されるこのテーブルの要素を「ポップ」したいと思います。table.remove()メソッドはありますが、削除する要素のインデックス(つまり、数値)のみを受け取り、汎用キーは受け取りません。私はできるようになりたいと思いますtable.remove(map, 'foo')、そしてここに私がそれをどのように実装したかがあります: function table.removekey(table, key) local element = table[key] table[key] = nil return element end それを行うより良い方法はありますか?
94 lua  key  lua-table 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.