lua 中 和 的區別

2021-09-07 09:19:08 字數 1147 閱讀 5124

function  class:func2( )  end

function class.func1(self) end

--這時候這兩個函式等價

function mainscene:ctor()

self:ceshi(1,2,3)

endfunction mainscene:ceshi(a,b,c)

print(a,b,c)

end輸出:1 2 3

分析:預設傳self,預設接受self。

function mainscene:ctor()

self:ceshi(1,2,3)

endfunction mainscene.ceshi(a,b,c) --注意是.

print(a,b,c)

end輸出:userdata 1 2

分析:呼叫ceshi函式時用的:預設傳遞self為第乙個引數,但是函式宣告的時候用的 . 所以不會有預設隱藏的self去接收,此時傳遞引數為 self 1 2 3 但是ceshi函式只接收3個引數所以3被拋棄。

function mainscene:ctor()

self.ceshi(1,2,3) --注意是.

endfunction mainscene.ceshi(a,b,c) --注意是.

print(a,b,c)

end輸出:1 2 3

分析:預設不傳遞self,預設不接受self

function mainscene:ctor()

self.ceshi(1,2,3) --注意是.

end

function mainscene:ceshi(a,b,c)

print(self)

print(a,b,c)

end輸出:1

2 3 nil

分析:函式呼叫時用的 . 不會傳遞self 只傳遞1 2 3,而ceshi函式宣告時用的 : 預設有乙個self在第一位去接收,ceshi函式能接收4個引數,即 self a b c ,所以c沒有接收引數為nil。 

在lua中模擬物件導向程式設計中,可以用 . 來表示類方法,而 : 可以用來表示成員方法。

lua中 和 的區別

先說總結 就是不把自身傳進去 就是把自身傳進去 冒號只是起了省略第乙個引數self的作用,該self指向呼叫者本身,並沒有其他特殊的地方。例子 這個是通過.girl function girl.gotomarket girl somemoney 需要將girl傳進去,引數用self也可以 girl....

Java中 和 的區別

第十一,short s1 1 s1 s1 1 有什麼錯?short s1 1 s1 1 有什麼錯?引出一下討論。賦值運算子,在編譯器將右邊的表示式結果計算出來後,和左邊的變數型別比較精度,如果左邊的變數精度低於右邊的結果的精度,編譯器會顯式的報錯,告訴程式設計師去強制轉型。所以s1 s1 1出錯 最...

Linux shell中 和 的區別

shell中和的區別 結構比結構更加通用。這是乙個擴充套件的test命令,支援萬用字元。在 和 之間所有的字元都不會發生檔名擴充套件或者單詞分割,但是會發生引數擴充套件和命令替換。使用 條件判斷結構,而不是 能夠防止指令碼中的許多邏輯錯誤,比如,和 這些操作符能夠正常存在於這個條件判斷中,但是如果出...