lua的語法很簡單,太簡單了,所以lua就復雜了 兩個點與一個點有什么區別呢? 一個點用來定義和取得一個變量,這個變量可能是個函數 兩個點用來定義和調用一個函數,兩個點會自動傳入“調用者”這個table自身 先看簡單的: c = {a = 1, b = 2} function c ...
Lua中的點 冒號與self,它們之間的關系主要體現在函數的定義與調用上,Lua在函數定義時可以用點也可以用冒號,如: 用冒號定義的函數有個特別的地方是它內部有個self表示自身可以直接訪問 雖然self並不是Lua的關鍵字,他它確實是可以訪問的 ,如同C C 的this: 輸出: 可見self即myclass本身。如果上面不是冒號而是點則self不可用的會報錯,因為self是個nil值。 點定義 ...
2017-08-15 23:04 0 1642 推薦指數:
lua的語法很簡單,太簡單了,所以lua就復雜了 兩個點與一個點有什么區別呢? 一個點用來定義和取得一個變量,這個變量可能是個函數 兩個點用來定義和調用一個函數,兩個點會自動傳入“調用者”這個table自身 先看簡單的: c = {a = 1, b = 2} function c ...
鏈接:https://www.jianshu.com/p/753b06ca07b0 --冒號:在定義時省略了self --點號:在定義時不省略self Class = {} Class.__index = Class function ...
前言 在LUA中,經常可以看到:. self,如果你學習過Java或C#語言,可以這樣理解 .對於c#和java的靜態方法 :相當於是實例方法 今天在CSDN上看到一篇博客寫的很清楚,轉載過來 原文出處:http://blog.csdn.net/wangbin_jxust ...
一、定義方法的區別 1、冒號定義方法,默認會接受self參數;而點號定義的時候,默認不會接受self參數 例: (1)冒號定義 function class:test() --這里會接受self參數,比如 print(self.a,self.b) 在這里self ...
先來看一段簡單的代碼: 輸出結果為: 由此可見,定義:在Eat(冒號函數)內部有一個參數self,在Sleep(點函數)內部沒有參數self;調用:用冒號(:)調用函數時,會默認傳一個值(調用者自身)作為第一個參數;用點(.)調用函數時,則沒 ...
參考資料 1.https://my.oschina.net/lonewolf/blog/173065 其結論為: 1、定義的時候:Class:test()與 Class.test(self)是等價的,點號(.)要達到冒號(:)的效果要加一個self參數到第一個參數; 2、調用 ...
lua中self指的是當前方法所屬的table。一般來講self可以理解為當前對象,但是在創建一個“類”的實例的時候,它代表的確是基類,而非當前對象。 下面上代碼: ...
example1 Account模擬一個對象,new方法類似於實例化一個對象,conf可存放一些初始值作用等同於conf是Account的子類。 解釋:Account這個table有一個屬性balance,通過new函數實例化一個類繼承於Account。在lua中類,父類都是 ...