婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

熱門標簽:400手機電話免費辦理 百度地圖標注位置網站 上海企業外呼系統排名 如何利用高德地圖標注家 電腦外呼系統輻射大嗎 開通400電話申請流程 智能語音電銷的機器人 揚州電銷外呼系統軟件 武漢百應人工智能電銷機器人

上一節對元表和元方法有了一個初步的認識,這篇就來舉個最簡單的例子吧,加深一下印象,也為后續內容做準備。

1.元方法名

Lua其實已經規定好了各種算術操作符的元方法名字,如:

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

2.例子

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

復制代碼 代碼如下:

    -- 創建一個元表
    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

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

復制代碼 代碼如下:

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

其實我們可以把s1和s2當成是類的對象,實際上Lua也可以模擬類的結構,目前暫時不說,配合看書的進度~
輸出結果如下:

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

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

標簽:江西 張掖 武漢 新余 延邊 宜賓 黑龍江 嘉峪關

巨人網絡通訊聲明:本文標題《Lua中使用元表(metatable)執行算術類元方法實例》,本文關鍵詞  Lua,中,使用,元表,metatable,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua中使用元表(metatable)執行算術類元方法實例》相關的同類信息!
  • 本頁收集關于Lua中使用元表(metatable)執行算術類元方法實例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 石河子市| 唐河县| 民和| 彰化市| 松潘县| 修武县| 财经| 西盟| 衡山县| 洪雅县| 太仓市| 和田县| 三明市| 阳泉市| 光泽县| 安仁县| 南宁市| 衡南县| 嵊州市| 兴宁市| 体育| 响水县| 长治市| 镇平县| 丰顺县| 府谷县| 紫云| 祁阳县| 绥芬河市| 阳城县| 玛多县| 城口县| 桓台县| 浮梁县| 茶陵县| 惠州市| 杭州市| 洪湖市| 云梦县| 呼图壁县| 观塘区|