人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

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

發(fā)布日期:2022-01-30 08:33 | 文章來(lái)源:CSDN

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

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

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

Lua中的function可以用來(lái)表示方法。那么Lua中的類可以通過(guò)table + function模擬出來(lái)。

簡(jiǎn)例:

-- Czhenya Lua 面向?qū)ο?-- 對(duì)于一個(gè)對(duì)象來(lái)說(shuō), 屬性 方法
--[[ 兩種定義函數(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
-- 類似于通過(guò)構(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)來(lái)的定義函數(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()
--通過(guò)點(diǎn)來(lái)調(diào)用的時(shí)候,self不會(huì)自動(dòng)賦值,必須通過(guò)參數(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)鏈接

香港穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信