[解決済み] Luaにポインタのようなものはありますか?
2022-02-11 17:49:26
質問
Luaの初心者ですが、以下のような値を格納するテーブル[doh]を作成したいのです。
parent.child[1].value = "whaterver"
parent.child[2].value = "blah"
しかし、ほとんどの場合、子プロセスは1つだけなので、このように値にアクセスする方が簡単です。
parent.child.value
もっとシンプルにするために、私は以下のような方法で値を保存したいと思います。
parent.child[1].value == parent.child.value
しかし、これを行うには、この値をメモリに2回保存する必要があります。 何か方法はないでしょうか。
parent.child.value points to parent.child[1].value
値をメモリに2回保存することなく?
追加の質問ですが、テーブルがどれくらいのメモリを消費するかを確認する方法はありますか?
どのように解決するのですか?
<ブロッククオートが、値は文字列として保存されるので、必要なのは文字列です。 テーブルではなく、両方の場所で参照されます。
まず、すべての型(ブーリアン、数値、ライトユーザー・データを除く)は参照です。
t
がテーブルで
t2 = t
であるならば、両方の
t
と
t2
は、メモリ上の同じテーブルへの参照である。
2つ目は、Luaでは文字列はインターンであるということです。つまり、すべての等しい文字列、例えば
"abc"
の結果であり
"ab".."c"
は実際には1つの文字列です。また、Luaは文字列への参照のみを保存します。ですから、メモリについて心配する必要はありません。文字列のインスタンスは一度に1つしか存在しないのです。
を安全に行うことができます。
parent.child.value = parent.child[1].value
テーブルの1スロット分のメモリ(数バイト)しか使用せず、文字列はコピーされず、参照されるだけです。
関連
-
[解決済み] 型付けされた関数ポインタ?
-
[解決済み] Luaにポインタのようなものはありますか?
-
[解決済み] C - エラーは "free(): invalid next size (normal)" です。
-
[解決済み] luaテーブルのエントリーをキーで削除する方法は?
-
[解決済み] パラメータと戻り値におけるポインタと値の比較
-
[解決済み】XがYを実装していない(...メソッドがポインタのレシーバを持つ)
-
[解決済み] 「<type>はインターフェースへのポインターであり、インターフェースではない」混乱
-
[解決済み] Goで*int64をリテラルにするにはどうしたらいいですか?
-
[解決済み] ファットポインターとは何ですか?
最新
-
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 実装 サイバーパンク風ボタン