通過lua強大的metatable來實現繼承,主要**如下:
__index元方法:用於檢視表中元素或方法是否存在,如果不存在返回nil,如果存在,則返回__index表中的結果
baseclass = {}
baseclass.__index = baseclass
function baseclass:myshow( key )
if key == "key2" then
return "baseclass key2 is nil"
else
return baseclass[key]
endend
require"baseclass"
childclass = setmetatable({},baseclass)
childclass.temptable =
function childclass:showallkey( key )
if self == nil then
print("self is nil")
endif key == "key1" then
return childclass.temptable[key]
elseif key == "key2" then
return childclass:myshow(key)
else
return childclass.temptable[key]
endendprint("******************************===")
print(childclass.showallkey(self,"key1"))
print("******************************===")
print(childclass.showallkey(self,"key2"))
print("******************************===")
print(childclass.showallkey(self,"key3"))
print("******************************===")
注意:**是在sublime text3上編譯
執行結果
lua 元表理解 index
lua 表的本質是乙個hasmap的東西,是乙個key value的形式,除了nil,其他的任何值都能做key,在乙個lua表中去查詢乙個不存在的key的時候,就會觸發lua自己的一套查詢機制,同樣的繼承也是根據這個機制實現的。1.什麼是元表 我認為是乙個備用操作指南,這個指南裡面有很多方法,ind...
lua元表中的 index鍵值
學了元表,裡面的乙個很重要的鍵值 index 當我們通過鍵去訪問乙個表時,如果不存在這個鍵,lua還會嘗試搜尋表的元表的 index鍵值,沒有則返回nil 1.如果元表中的 index鍵對應的是表,直接搜尋鍵名,搜尋不到返回nil 2.如果元表中的 index鍵所對應的是函式,則呼叫函式並傳遞 表和...
Lua中強大的元方法 index詳解
這篇文章主要介紹了lua中強大的元方法 index詳解,本文著重講解了使用 index元方法實現table的繼承,需要的朋友可以參考下 今天要來介紹比較好玩的內容 index元方法 1.我是備胎,記得回頭看看 咳咳,相信每一位女生都擁有或者不知不覺中擁有了一些備胎,啊,當然,又或許是成為過別人的備胎...