タグ

2022年12月29日のブックマーク (2件)

  • Luaでオブジェクト指向(1)―基本はコロン記法とメタテーブル - Minecraftとタートルと僕

    はじめに Luaは組み込み用途の小規模な言語であるにも関わらず、オブジェクト指向プログラミングが可能です。なにそれ怖い。 Luaはインスタンスベース*1のオブジェクト指向プログラミングをサポートしています。 もっと具体的に言うならば、オブジェクトの雛形としてクラス設計を重視する(堅苦しい)クラスベースのオブジェクト指向ではなく、 元となるインスタンス(プロトタイプ)をベースに、自由にインスタンス変数・メソッドを追加しつつ柔軟に新しいオブジェクトを作成できることが特徴です。 インスタンスベース・オブジェクト指向の利点は後からの変更に対する許容性の高さです。クラスベースの方は、かっちり決まればとてもきれいなプログラムができますが、後からの変更を考えるとクラスまで遡って変更を加えるのはきついよねというある意味妥協の産物とも言えますw 一昔前はクラスベースを採用しているプログラム言語を多く見かけま

    Luaでオブジェクト指向(1)―基本はコロン記法とメタテーブル - Minecraftとタートルと僕
  • 【Lua】Luaでオブジェクト指向プログラミングをする - LIGHT11

    Luaでオブジェクト指向プログラミングをする方法についてまとめます。 はじめに メタテーブル メタテーブルの__indexキーについて オブジェクト指向プログラミング 関連 参考 はじめに 記事ではLuaでオブジェクト指向プログラミングを行う方法についてまとめます。 Luaについての基礎知識については以下の記事にまとめていますので、必要に応じて参照してください。 light11.hatenadiary.com メタテーブル さてLuaでオブジェクト指向プログラミングをするためには前提知識としてメタテーブルを理解する必要があります。 Luaでは全ての値がメタテーブルを持ちますが、特にテーブルに対してメタテーブルを設定すると、テーブルの動作を上書きできます。 この仕組みを理解するために以下のような3次元の値を表現するVector3テーブルを定義します。 local Vector3 = {}

    【Lua】Luaでオブジェクト指向プログラミングをする - LIGHT11