欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年10月25日 15:18:06   作者:Czhenya  
今天小編就為大家分享一篇關(guān)于Lua面向?qū)ο缶幊讨A(chǔ)結(jié)構(gòu)table簡(jiǎn)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

面向?qū)ο缶幊?/strong>

(Object Oriented Programming,OOP)是一種非常流行的計(jì)算機(jī)編程架構(gòu)。

Lua中最基本的結(jié)構(gòu)是table,所以需要用table來描述對(duì)象的屬性。

Lua中的function可以用來表示方法。那么Lua中的類可以通過table + function模擬出來。

簡(jiǎn)例:

-- Czhenya Lua 面向?qū)ο?
-- 對(duì)于一個(gè)對(duì)象來說, 屬性 方法
--[[ 兩種定義函數(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)用一個(gè)屬性的時(shí)候,如果t中不存在,就會(huì)在__index所指的table中查找
  return t
end
-- 類似于通過構(gòu)造函數(shù)創(chuàng)建對(duì)象
person1 = Person:new({weight = 100})
person2 = Person:new()
print(person1.name)
print(person1.weight)
print(person2.name)
person1.name = "CZY"  --不會(huì)改變?cè)恚砑拥絧erson.name
person1:eat()
person2:eat()
--繼承
Student = Person:new()
Student.grade = 1
stu1 = Student:new()
stu1:eat()
print(stu1.grade)

冒號(hào)和點(diǎn)定義函數(shù)的區(qū)別:

-- 使用冒號(hào)和點(diǎn)來的定義函數(shù),建議用什么定義函數(shù),用什么調(diào)用
person = {name="Czhenya",age=22}
function person:eat()
  print(self.name.."的年齡是"..self.age)
end
person.eat(person)
a = person
--冒號(hào)調(diào)用self自動(dòng)賦值
a:eat()
--通過點(diǎn)來調(diào)用的時(shí)候,self不會(huì)自動(dòng)賦值,必須通過參數(shù)傳遞
a.eat(a)

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Lua教程(一):在C++中嵌入Lua腳本

    Lua教程(一):在C++中嵌入Lua腳本

    這篇文章主要介紹了Lua教程(一):在C++中嵌入Lua腳本,本文在MAC環(huán)境中開發(fā),同時(shí)探討了IOS項(xiàng)目集成Lua、Android項(xiàng)目集成Lua等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua利用cjson讀寫json示例分享

    Lua利用cjson讀寫json示例分享

    本文結(jié)合本人的實(shí)際使用經(jīng)驗(yàn)和代碼示例,介紹如何在Lua中對(duì)json進(jìn)行encode和decode,需要的朋友可以參考下
    2014-11-11
  • Lua中字符串(string)淺析

    Lua中字符串(string)淺析

    這篇文章主要介紹了Lua中字符串(string)淺析,本文講解了字符串的聲明、連接、簡(jiǎn)單的使用方法等,是一篇入門教程,需要的朋友可以參考下
    2014-09-09
  • Lua判斷數(shù)據(jù)類型的方法

    Lua判斷數(shù)據(jù)類型的方法

    這篇文章主要介紹了Lua判斷數(shù)據(jù)類型的方法,本文講解了判斷數(shù)據(jù)類型的方法和Lua腳本語言的8種基本數(shù)據(jù)類型,需要的朋友可以參考下
    2015-04-04
  • Lua中的源代碼預(yù)編譯淺析

    Lua中的源代碼預(yù)編譯淺析

    這篇文章主要介紹了Lua中的源代碼預(yù)編譯淺析,Lua確實(shí)允許在運(yùn)行源代碼之前,將源代碼預(yù)編譯成一種中間形式(類比Python的.pyc),需要的朋友可以參考下
    2014-09-09
  • Lua中string.len()使用指南

    Lua中string.len()使用指南

    Lua 字符串庫中的所有函數(shù)都導(dǎo)出在模塊 string 中,今天我們先來看看string.len()的使用,有需要的小伙伴可以參考下
    2016-08-08
  • 在Lua程序中使用MySQL的教程

    在Lua程序中使用MySQL的教程

    這篇文章主要介紹了在Lua程序中使用MySQL的教程,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Lua腳本實(shí)現(xiàn)遞歸刪除一個(gè)文件夾

    Lua腳本實(shí)現(xiàn)遞歸刪除一個(gè)文件夾

    這篇文章主要介紹了Lua腳本實(shí)現(xiàn)遞歸刪除一個(gè)文件夾,本文給出了C++和Lua兩個(gè)版本的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • Lua中基本的數(shù)據(jù)類型、表達(dá)式與流程控制語句講解

    Lua中基本的數(shù)據(jù)類型、表達(dá)式與流程控制語句講解

    這篇文章主要介紹了Lua中基本的數(shù)據(jù)類型、表達(dá)式與流程控制語句講解,總結(jié)了Lua入門學(xué)習(xí)中的基礎(chǔ)語法知識(shí),需要的朋友可以參考下
    2016-06-06
  • Lua和Nginx結(jié)合使用的超級(jí)指南

    Lua和Nginx結(jié)合使用的超級(jí)指南

    這篇文章主要介紹了Lua和Nginx結(jié)合使用的指南,從數(shù)據(jù)轉(zhuǎn)換到API等各個(gè)方面均有涉及,超推薦!需要的朋友可以參考下
    2015-06-06

最新評(píng)論