Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例
更新時間:2018年10月25日 15:18:06 作者:Czhenya
今天小編就為大家分享一篇關(guān)于Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
面向?qū)ο缶幊?/strong>
(Object Oriented Programming,OOP)是一種非常流行的計算機編程架構(gòu)。
Lua中最基本的結(jié)構(gòu)是table,所以需要用table來描述對象的屬性。
Lua中的function可以用來表示方法。那么Lua中的類可以通過table + function模擬出來。
簡例:
-- Czhenya Lua 面向?qū)ο? -- 對于一個對象來說, 屬性 方法 --[[ 兩種定義函數(shù)的方式 person.eat = function() print(person.name.."在寫LUA") end function person.eat() print(person.name.."在寫LUA") end --]] --作為原型 Person = {name = 'Czhena',age = 22} function Person:eat() print(self.name.."的年齡是"..self.age) end function Person:new(o) -- 若o是空的則返回false local t = o or {} --[[ 和下面設(shè)置結(jié)果一樣,只是兩種不同的方式 setmetatable{t,self} self.__index=self --]] setmetatable(t,{__index = self}) --設(shè)置元表 --調(diào)用一個屬性的時候,如果t中不存在,就會在__index所指的table中查找 return t end -- 類似于通過構(gòu)造函數(shù)創(chuàng)建對象 person1 = Person:new({weight = 100}) person2 = Person:new() print(person1.name) print(person1.weight) print(person2.name) person1.name = "CZY" --不會改變元表,添加到person.name person1:eat() person2:eat() --繼承 Student = Person:new() Student.grade = 1 stu1 = Student:new() stu1:eat() print(stu1.grade)
冒號和點定義函數(shù)的區(qū)別:
-- 使用冒號和點來的定義函數(shù),建議用什么定義函數(shù),用什么調(diào)用 person = {name="Czhenya",age=22} function person:eat() print(self.name.."的年齡是"..self.age) end person.eat(person) a = person --冒號調(diào)用self自動賦值 a:eat() --通過點來調(diào)用的時候,self不會自動賦值,必須通過參數(shù)傳遞 a.eat(a)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:
- 深入談?wù)刲ua中神奇的table
- Lua Table轉(zhuǎn)C# Dictionary的方法示例
- Lua中設(shè)置table為只讀屬性的方法詳解
- Lua編程示例(一):select、debug、可變參數(shù)、table操作、error
- 舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu)
- Lua table中安全移除元素的方法
- Lua的table庫函數(shù)insert、remove、concat、sort詳細介紹
- C++遍歷Lua table的方法實例
- Lua中釋放table占用內(nèi)存的方法
- Lua中table的遍歷詳解
- Lua中獲取table長度問題探討
- Lua中獲取table長度的方法
- Lua中table里內(nèi)嵌table的例子
相關(guān)文章
Lua中基本的數(shù)據(jù)類型、表達式與流程控制語句講解
這篇文章主要介紹了Lua中基本的數(shù)據(jù)類型、表達式與流程控制語句講解,總結(jié)了Lua入門學習中的基礎(chǔ)語法知識,需要的朋友可以參考下2016-06-06