濮阳杆衣贸易有限公司

主頁 > 知識庫 > Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例

Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例

熱門標簽:杞縣地圖標注app 外呼系統(tǒng)一天耗費多少流量 艾比利外呼系統(tǒng) 免費門店地圖標注注冊入駐 ??谥悄苷Z音電銷機器人好用嗎 衡水外呼線路解決 昆明電話外呼系統(tǒng)好么 電話機器人每天搜索多少次 陜西便宜電銷機器人軟件

面向?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的例子

標簽:臨滄 西寧 宿遷 南京 昌都 營口 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例》,本文關(guān)鍵詞  Lua,面向,對象,編程,之,基礎(chǔ),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    临安市| 宾阳县| 井冈山市| 澄江县| 射洪县| 罗定市| 敦化市| 通辽市| 泸水县| 洮南市| 庄浪县| 丰顺县| 翁牛特旗| 册亨县| 武义县| 远安县| 呈贡县| 马公市| 禄劝| 句容市| 亳州市| 永康市| 彰武县| 介休市| 铜山县| 额济纳旗| 葵青区| 波密县| 徐闻县| 淮北市| 海原县| 大冶市| 开鲁县| 周口市| 达日县| 长乐市| 西乡县| 治多县| 临潭县| 芮城县| 泗阳县|