LuaのTableデータ構造を例題を交えて解説
2022-02-10 20:18:13
本文中 - 横2行で1行のコメント開始、- [[プラス2つの[and]で複数行のコメントを示す-]]。
コピーコード
コードは以下の通りです。
-- Table = Lua's only data structure;
-- They are associative arrays.
-- similar to arrays in PHP or objects in js.
-- They are hash lookup tables (dict), which can also be used by list.
-- They are associative arrays.
-- similar to arrays in PHP or objects in js.
-- They are hash lookup tables (dict), which can also be used by list.
コピーコード
コードは以下の通りです。
-- Using Table in a dictionary/map fashion.
-- Dict's iteration defaults to using a key of type string.
t = {key1 = 'value1', key2 = false}
コピーコード
コードは以下の通りです。
-- String's key can be referenced with a dot like js:.
print(t.key1) -- prints 'value1'.
t.newKey = {} -- Add a new key/value pair.
t.key2 = nil -- Remove key2 from table.
print(t.key1) -- prints 'value1'.
t.newKey = {} -- Add a new key/value pair.
t.key2 = nil -- Remove key2 from table.
コピーコード
コードは以下の通りです。
-- Use any value that is not nil as the key.
u = {['@! #'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}
print(u[6.28]) -- prints "tau"
u = {['@! #'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}
print(u[6.28]) -- prints "tau"
コピーコード
コードは以下の通りです。
-- For numbers and strings the key is matched by value, but for table it is matched by id.
a = u['@! #'] -- now a = 'qbert'.
b = u[{}] -- We were expecting 1729, but got nil:
-- b = nil, because it wasn't found.
-- is not found because the key we used is not the same object we used to save the data.
-- so strings and numbers are better keys for availability.
a = u['@! #'] -- now a = 'qbert'.
b = u[{}] -- We were expecting 1729, but got nil:
-- b = nil, because it wasn't found.
-- is not found because the key we used is not the same object we used to save the data.
-- so strings and numbers are better keys for availability.
コピーコード
コードは以下の通りです。
-- function calls that take only one table parameter do not require parentheses: the
function h(x) print(x.key1) end
h{key1 = 'Sonmi~451'} -- prints 'Sonmi~451'.
function h(x) print(x.key1) end
h{key1 = 'Sonmi~451'} -- prints 'Sonmi~451'.
コピーコード
コードは以下の通りです。
for key, val in pairs(u) do -- Traversal of Table.
print(key, val)
end
print(key, val)
end
コピーコード
コードは以下の通りです。
-- _G is a special table that holds all the global variables
print(_G['_G'] == _G) -- prints 'true'.
print(_G['_G'] == _G) -- prints 'true'.
コピーコード
コードは以下の通りです。
-- Using by list/array.
-- The iterative approach to list implicitly adds the key of int.
v = {'value1', 'value2', 1.21, 'gigawatts'}
for i = 1, #v do -- #v is the size of the list
print(v[i]) -- index starts at 1!!! That's crazy!
end
-- 'list' is not really a type, v is still a table, and
-- except that it has consecutive integers as keys that can be used like a list.
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Luaのフロー制御文if elseの使用例
-
初心者のためのLua言語チュートリアル
-
Lua Observerパターンの解析 イベント配信システム構築のためのベストプラクティス
-
Vimを使ったLua開発環境の構築方法詳細
-
チャックルアにおけるマルチスレッド入門
-
Lua cjsonモジュールのコンパイル時の注意点とエラーの解決方法
-
Luaでモジュールを使用するための基本的なチュートリアル
-
Luaプログラミングでネストされたループを使用するためのチュートリアル
-
Luaにおける論理演算子の使用方法について説明します。
-
Rubyのクラスインスタンス変数、クラスインスタンスメソッドとクラス変数、クラスメソッドの違いについて