最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Lua中rawset和rawget的作用淺析

 更新時間:2015年04月22日 09:14:32   投稿:junjie  
這篇文章主要介紹了Lua中rawset和rawget的作用淺析,本文分別用兩段代碼演示了rawset和rawget的作用,需要的朋友可以參考下

rawget是為了繞過__index而出現(xiàn)的,直接點,就是讓__index方法的重寫無效。(我這里用到"重寫"二字,可能不太對,希望能得到糾正)

復制代碼 代碼如下:

Window = {} 
 
Window.prototype = {x = 0 ,y = 0 ,width = 100 ,height = 100,} 
Window.mt = {} 
function Window.new(o) 
    setmetatable(o ,Window.mt) 
    return o 
end 
Window.mt.__index = function (t ,key) 
    return 1000 
end 
Window.mt.__newindex = function (table ,key ,value) 
    if key == "wangbin" then 
        rawset(table ,"wangbin" ,"yes,i am") 
    end 
end 
w = Window.new{x = 10 ,y = 20} 
print(rawget(w ,w.wangbin)) 

打印結果是:nil。這里的元表中__index函數(shù)就不再起作用了。
但是rawset呢,起什么作用呢?我們再來運行一段代碼。
復制代碼 代碼如下:

Window = {} 
Window.prototype = {x = 0 ,y = 0 ,width = 100 ,height = 100,} 
Window.mt = {} 
function Window.new(o) 
    setmetatable(o ,Window.mt) 
    return o 
end 
Window.mt.__index = function (t ,key) 
    return 1000 
end 
Window.mt.__newindex = function (table ,key ,value) 
    table.key = "yes,i am" 
end 
w = Window.new{x = 10 ,y = 20} 
w.wangbin = "55" 

然后我們的程序就stack overflow了??梢?,程序陷入了死循環(huán)。因為w.wangbin這個元素本來就不存在表中,然后這里不斷執(zhí)行進入__newindex,陷入了死循環(huán)。

相關文章

  • 詳解Lua中if ... else語句的使用方法

    詳解Lua中if ... else語句的使用方法

    這篇文章主要介紹了詳解Lua中if ... else語句的使用方法,是Lua入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Lua獲取utf8字符串長度和字符串截取并用...代替

    Lua獲取utf8字符串長度和字符串截取并用...代替

    這篇文章主要介紹了Lua獲取utf8字符串長度和字符串截取并用...代替,本文直接給出兩個函數(shù)的實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Lua腳本語言簡介

    Lua腳本語言簡介

    這篇文章主要介紹了Lua腳本語言簡介,Lua最著名的應用是在暴雪公司的網(wǎng)絡游戲WOW中, Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過來調(diào)用C/C++的函數(shù),這使得Lua在應用程序中可以被廣泛應用,本文就是對Lua語言的詳細介紹,需要的朋友可以參考下
    2014-09-09
  • Lua返回一個Closures函數(shù)實例

    Lua返回一個Closures函數(shù)實例

    這篇文章主要介紹了Lua返回一個Closures函數(shù)實例,本文直接給出代碼實例,需要的朋友可以參考下
    2015-04-04
  • 詳解Lua中的if語句的使用方法

    詳解Lua中的if語句的使用方法

    這篇文章主要介紹了詳解Lua中的if語句的使用方法,是Lua入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Lua實現(xiàn)__add方法重載示例

    Lua實現(xiàn)__add方法重載示例

    這篇文章主要介紹了Lua實現(xiàn)__add方法重載示例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • 把Lua編譯進nginx步驟方法

    把Lua編譯進nginx步驟方法

    這篇文章主要介紹了把Lua編譯進nginx步驟方法,本文講解了操作步驟以及可能出現(xiàn)的錯誤解決方法,需要的朋友可以參考下
    2015-06-06
  • 使用lua實現(xiàn)php的var_dump()函數(shù)功能

    使用lua實現(xiàn)php的var_dump()函數(shù)功能

    小編比較熟悉php,所以這篇文章主要介紹了使用lua實現(xiàn)php的var_dump()函數(shù)功能,需要的朋友可以參考下
    2014-11-11
  • 淺談Lua的面向對象特性

    淺談Lua的面向對象特性

    這篇文章主要介紹了Lua的面向對象特性,包括對象和繼承等傳統(tǒng)OOP概念的幾個關鍵知識點,需要的朋友可以參考下
    2015-05-05
  • Lua極簡入門指南(六):模塊

    Lua極簡入門指南(六):模塊

    這篇文章主要介紹了Lua極簡入門指南(六):模塊,本文講解了require函數(shù)、編寫模塊、查找模塊等內(nèi)容,需要的朋友可以參考下
    2014-10-10

最新評論

布尔津县| 木里| 巧家县| 慈利县| 武威市| 余干县| 股票| 津市市| 海丰县| 高要市| 宣武区| 栾城县| 岚皋县| 克拉玛依市| 临夏县| 抚松县| 玉树县| 莲花县| 涞水县| 商洛市| 江山市| 抚宁县| 公安县| 荆州市| 怀来县| 武山县| 平舆县| 大庆市| 家居| 驻马店市| 晋中市| 神农架林区| 靖西县| 米林县| 屏东市| 翁源县| 石泉县| 曲阳县| 定远县| 东源县| 仁怀市|