スクリプト言語 Lua は,基本的には命令型プログラミング言語であって,オブジェクト指向型言語としての機能は,本来持ち合わせていない。ただ,関数を first-class オブジェクトとして扱えることや, metatable 等の機能を使うことによって,「OOP のようなもの」は実現できるようになっている。 このような「OOP のようなもの」を意識した syntax sugar のひとつとして,「コロン構文」が用意されている。例えば,次のような記述によって「メソッドのようなもの」を定義することができる。 function counter:add(delta) self.count = self.count + delta end これは,以下の記述と同等に扱われる。 counter.add = function(self, delta) self.count = self.count +