lua中的點 冒號與self

2021-06-27 11:42:06 字數 817 閱讀 6175

lua程式設計中,經常遇到函式的定義和呼叫,有時候用點號呼叫,有時候用冒號呼叫,這裡簡單的說明一下原理。

girl = 

function girl.gotomarket(girl ,somemoney)

girl.money = girl.money - somemoney

endgirl.gotomarket(girl ,100)

print(girl.money)

可以看出,這裡進行了方法的點號定義和點號呼叫。

boy = 

function boy:gotomarket(somemoney)

self.money = self.money - somemoney

endboy:gotomarket(100)

print(boy.money)

這裡進行了冒號定義和冒號呼叫。

以上的列印結果都是100。

可以看出,冒號定義和冒號呼叫其實跟上面的效果一樣,只是把第乙個隱藏引數省略了,而該引數self指向呼叫者自身

當然了,我們也可以點號定義冒號呼叫,或者冒號定義點號呼叫

如:

boy = 

function boy.gotomarket(self ,somemoney)

self.money = self.money - somemoney

endboy:gotomarket(100)

print(boy.money)

總結:冒號只是起了省略第乙個引數self的作用,該self指向呼叫者本身,並沒有其他特殊的地方。

Lua中的點 冒號與self

lua中的點 冒號與self,它們之間的關係主要體現在函式的定義與呼叫上,lua在函式定義時可以用點也可以用冒號,如 function mytable.fun p return p endfunction mytable fun p return p end用冒號定義的函式有個特別的地方是它內部有個...

LUA中的冒號 點和self

在lua程式設計中,經常會看到有時用點號定義乙個table的成員函式,有時卻用冒號,在呼叫的時候也是如此。那麼點號和冒號在使用上有什麼區別呢?它們與self之間又是什麼樣的關係呢?稍安勿躁,接下來謎底將一一為你揭開。下面先看乙個例子 class class.index class function ...

LUA中的冒號 點和self

在lua程式設計中,經常會看到有時用點號定義乙個table的成員函式,有時卻用冒號,在呼叫的時候也是如此。那麼點號和冒號在使用上有什麼區別呢?它們與self之間又是什麼樣的關係呢?稍安勿躁,接下來謎底將一一為你揭開。下面先看乙個例子 class class.index class function ...