濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例

Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例

熱門標(biāo)簽:400手機(jī)電話免費(fèi)辦理 百度地圖標(biāo)注位置網(wǎng)站 上海企業(yè)外呼系統(tǒng)排名 如何利用高德地圖標(biāo)注家 電腦外呼系統(tǒng)輻射大嗎 開通400電話申請(qǐng)流程 智能語音電銷的機(jī)器人 揚(yáng)州電銷外呼系統(tǒng)軟件 武漢百應(yīng)人工智能電銷機(jī)器人

上一節(jié)對(duì)元表和元方法有了一個(gè)初步的認(rèn)識(shí),這篇就來舉個(gè)最簡單的例子吧,加深一下印象,也為后續(xù)內(nèi)容做準(zhǔn)備。

1.元方法名

Lua其實(shí)已經(jīng)規(guī)定好了各種算術(shù)操作符的元方法名字,如:

__add:加法
__sub:減法
__mul:乘法
__div:除法
__unm:相反數(shù)
__mod:取模
__pow:乘冪
 
只要在自定義元表的時(shí)候,給這些元方法名賦予新的函數(shù)就可以實(shí)現(xiàn)自定義操作了。

2.例子

開始舉例吧,我們新建一個(gè)自定義的元表(也就是一個(gè)table變量),用來定義一些操作:

復(fù)制代碼 代碼如下:

    -- 創(chuàng)建一個(gè)元表
    local mt = {};
    mt.__add = function(s1, s2)
        local result = "";
        if s1.sex == "boy" and s2.sex == "girl" then
            result = "完美的家庭。";
        elseif s1.sex == "girl" and s2.sex == "girl" then
            result = "哦呵呵";
        else
            result = "蛇精病"
        end
      
        return result;
    end

其實(shí)這和上一節(jié)的例子基本一樣,只是多說一次而已,使用方式如下:

復(fù)制代碼 代碼如下:

    -- 創(chuàng)建兩個(gè)table,可以想象成是兩個(gè)類的對(duì)象
    local s1 = {
        name = "Hello",
        sex = "boy",
    }; 
    local s2 = {
        name = "Good",
        sex = "girl",
    };
  
    -- 給兩個(gè)table設(shè)置新的元表
    setmetatable(s1, mt);
    setmetatable(s2, mt);
  
    -- 進(jìn)行加法操作
    local result = s1 + s2;
  
    print(result);

其實(shí)我們可以把s1和s2當(dāng)成是類的對(duì)象,實(shí)際上Lua也可以模擬類的結(jié)構(gòu),目前暫時(shí)不說,配合看書的進(jìn)度~
輸出結(jié)果如下:

[LUA-print] 完美的家庭。
 
很簡單吧,我們可以給“類”賦予自定義的元表,改變加法、減法等算術(shù)操作。
 
好了,這篇有點(diǎn)短,只是作為上一篇的補(bǔ)充,或者說,換一種方式敘述而已。

您可能感興趣的文章:
  • Lua中的元表與元方法學(xué)習(xí)總結(jié)
  • Lua中的元表(metatable)、元方法(metamethod)詳解
  • 詳解Lua中的元表概念

標(biāo)簽:江西 張掖 武漢 新余 延邊 宜賓 黑龍江 嘉峪關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例》,本文關(guān)鍵詞  Lua,中,使用,元表,metatable,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    孝昌县| 绥化市| 武宁县| 柳江县| 会昌县| 卫辉市| 沈丘县| 铁力市| 宝兴县| 天津市| 永济市| 洛扎县| 广河县| 德庆县| 松原市| 松桃| 华容县| 读书| 昆明市| 冀州市| 东兰县| 苗栗县| 泰州市| 霍林郭勒市| 湖州市| 汨罗市| 娱乐| 六枝特区| 通化县| 大港区| 南涧| 盘锦市| 永善县| 临城县| 商都县| 绥滨县| 长泰县| 普兰店市| 吴江市| 兴安县| 阿尔山市|