首页 > 其他分享 >lua 元表__index 元方法应用1

lua 元表__index 元方法应用1

时间:2024-05-26 18:23:07浏览次数:18  
标签:__ index 元表 insert -- remove tab print

 1 --普通表
 2 local tab = {1,2,3}
 3 
 4 --元表
 5 local meta = {
 6     insert = function(t,v) 
 7         --监测表增加成员
 8         print("增加一个值",v)
 9         table.insert(t,v) 
10     end,
11     remove = function(t,i) 
12         --监测表删除成员
13         print("删除一个值",t[i])
14         table.remove(t,i) 
15     end
16 }
17 
18 
19 setmetatable(tab,{
20     __index = meta,
21     __tostring = function(t) return table.concat(t,",") end
22 })
23 
24 tab.insert(tab,4)
25 print(tab)
26 tab.insert(tab,5)
27 print(tab)
28 tab.remove(tab,1)
29 print(tab)
30 tab.remove(tab,1)
31 print(tab)

 

标签:__,index,元表,insert,--,remove,tab,print
From: https://www.cnblogs.com/axuanup/p/18214086

相关文章

  • Java异常中throw 与throws的区别
    throw与throws区别在Java中,throws和throw是两个不同的关键字,它们在异常处理中起着不同的作用。throws关键字:throws用于声明一个方法可能会抛出的异常。当一个方法可能会抛出异常时,我们需要使用throws关键字在方法签名中声明这些异常。这样,调用该方法的代码就需要处理这些异......
  • 什么是形式化方法?
    形式化方法英文:FormalMethods,是一种基于数学和逻辑的软件开发和验证技术,它通过严格的数学和逻辑推理来验证软件系统的正确性和可靠性。定义:形式化方法是一种将数学和逻辑应用于描述、开发和验证软硬件系统的技术。核心:形式化方法通过采用数学逻辑证明来对计算机软硬件系统进行......
  • Java中try catch finally 关键字
    异常处理中的几个常用关键字(trycatchfinallythrowthrows)异常处理java中提供一套异常处理机制,在程序发生异常时,可以执行预先设定好的处理程序,执行完成后,程序不会停止,可以继续向后执行.在写代码的时候,就要根据不同的情况设定好处理程序,运行程序......
  • Java中编译异常与运行异常的区别
    编译期异常和运行期异常的区别编译期异常和运行期异常的区别如下异常处理要求不同:编译期异常(也称为检测异常checkedException)要求在代码中显式地处理(使用try-catch或者throws)。运行时异常(也称为uncheckedException)不要求显式地处理。异常检测时机不同:编译期异常在代码编译阶......
  • etcd MVCC 存储结构及流程
    什么是MVCCMVCC是Multi-VersionConcurrencyControl的缩写,即多版本并发控制。它是一种并发控制的方法,用于在数据库系统中实现事务的隔离性。MVCC是一种乐观锁机制,它通过保存数据的多个版本来实现事务的隔禽性。在etcd中,MVCC是用于实现数据的版本控制的。而且可以查看历......
  • Charles 复制运用curl 指令【Copy cURL Request】
         curl-H"Host:localhost.charlesproxy.com:8080"-H"Cache-Control:max-age=0"-H"Upgrade-Insecure-Requests:1"-H"User-Agent:Mozilla/5.0(Macintosh;IntelMacOSX10_15_7)AppleWebKit/537.36(KHTML,likeGec......
  • jieba 分词
    print("学号后两位为33(2023310343133)")importjiebatxt=open("西游记.txt","r",encoding='gb18030').read()words=jieba.lcut(txt)counts={}forwordinwords:iflen(word)==1:#排除单个字符的分词结果continueelifword==&qu......
  • GESP等级大纲
    CCF编程能力等级认证概述CCF编程能力等级认证(GESP)为青少年计算机和编程学习者提供学业能力验证的规则和平台。GESP覆盖中小学阶段,符合年龄条件的青少年均可参加认证。C++&Python编程测试划分为一至八级,通过设定不同等级的考试目标,让学生具备计算机使用的基础能力和通过编程......
  • 风控图算法Graph Embedding(DeepWalk&Node2Vec)代码实现
    风控图算法GraphEmbedding(DeepWalk&Node2Vec)代码实现在上一篇中我们简单介绍了常用的GraphEmbedding算法,今天来对其中较为常用的两种算法——DeepWalk和Node2Vec进行python代码实现。文章目录风控图算法GraphEmbedding(DeepWalk&Node2Vec)代码实现一、KarateClub算......
  • 四子连棋(迭代搜索——idfs)
    四子连棋题目描述在一个4×44\times44×4的棋盘上摆放了14......