Lua 関数から配列(テーブル型)を参照する(selfと:の関係)

目次

確認環境:Windows10 64bit

 

関数で引数にselfを使用して配列を参照する

MyTable = {name = "red"}

function MyTable.sayColor(self)
    print("color is " .. self.name .. "!")
end

MyTable.sayColor(MyTable)  -- color is red!

1行目は、配列(テーブル型)です。
3行目は、関数名のsayColorの前にドット(.)とテーブル型のMyTableがあり、引数はselfがあります。
4行目のself.nameは、1行目のredを取得します。

 

関数で引数にselfを使用しない(コロンを記述する)

関数の引数にselfを記載しない代わりに:(コロン)を記載することで代替できます。

MyTable = {name = "red"}

function MyTable:sayColor()
    print("color is " .. self.name .. "!")
end

MyTable.sayColor(MyTable)  -- color is red!

3行目は、関数名のsayColorの前に:(コロン)があり、引数はselfがありません。
4行目のself.nameは、1行目のredを取得します。

 

まとめ

関数の前の:は何か

→関数の引数のselfを省略している

関数と:の前の文字はなにか

→配列名

関連の記事

Lua 関数のサンプル

△上に戻る