Menu
Coddy logo textTech

まとめ:読み取り専用テーブル

CoddyのLuaジャーニー「Logic & Flow」セクションの一部 — レッスン 23/54。

challenge icon

チャレンジ

簡単

original を受け取り、そのテーブルの読み取り専用バージョンを返す関数 makeReadOnly を作成してください。

元のテーブルからの読み取りは許可するが、いかなる変更も禁止するメタテーブルを持つプロキシテーブルを作成します。

ロジック:

  • 空のプロキシテーブルを作成する
  • (読み取りを許可するために)__index を元のテーブルに設定したメタテーブルを作成する
  • (変更をブロックするために)何もしない __newindex をメタテーブルに追加する
  • setmetatable() を使用してメタテーブルをプロキシにアタッチする
  • プロキシテーブルを返す

パラメータ:

  • original (table): 変更から保護するテーブル

戻り値: 元のテーブルへの読み取り専用アクセスを提供するプロキシテーブル (table)

自分で試してみよう

function makeReadOnly(original)
    -- ここにコードを記述してください
end

Logic & Flowのすべてのレッスン