Unity C#中LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查
LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查
- 介绍
- Lua表
- lua表初始化
- lua移除引用
- lua中向表中添加数据
- lua中表中移除数据
- lua表中连接数据
- lua表中数据排序
- 获取lua表长度
- 获取表中最大值
- UnityC#中LuaTable
- UnityC#中LuaArrayTable、LuaDictTable、LuaDictTable<K,V>
介绍
在Lua中和C#中对lua的表进行增删改查是比较常用的表操作,这里主要对比一下lua和C#中分别怎么对表进行增删改查
Lua表
lua表初始化
- mytable = {}
lua移除引用
- mytable = nil
lua中向表中添加数据
-
向xxtable中的index位置插入一个xx数据 table.insert(xxtab,index,xx)
-
向xxtable中末尾位置插入一个xx数据 table.insert(xxtab,xx)
-
向xxtab总末尾位置加入一个yytab表数据table.insert(xxtab,yytab)
-
向xxtab中index位置值修改为xxx(没有值则相当于添加数据)xxtab[index] = xxx
lua中表中移除数据
- lua中移除表中的指定索引数据 table.remove(xxtab,index)
- lua中移除表中末尾数据 table.remove(xxtab)
lua表中连接数据
- lua连接数据 table.concat(xxtab) 比如{“a”,“b”,“c”,5,“d”} 输出string类型 “abc5d”
- 用x符号连接表中数据 table.concat(xxtab,“x”) 比如{“a”,“b”,“c”,5,“d”} 输出string类型 “axbxcx5xd”
- 用x符号连接表中2到4的数据 table.concat(xxtab,“x”,2,4) 比如{“a”,“b”,“c”,5,“d”} 输出string类型 “bxcx5”
lua表中数据排序
- lua表默认排序 table.sort(table)
- lua表自定义function(a,b)条件排序 table.sort (table, funtion(a,b))
获取lua表长度
- lua中获取表的长度 #table
获取表中最大值
- lua中获取xxtab表中的最大值 table.maxn(xxtab) 比如{1,2,3,4,7} 输出7
UnityC#中LuaTable
- 获取原表 LuaTable GetMetaTable()
- 转成LuaArrayTable LuaArrayTable ToArrayTable()
- 转成LuaDictTable LuaDictTable ToDictTable()
- 转成LuaDictTable<K, V> LuaDictTable<K, V> ToDictTable<K, V>()
- 转成object[] object[] ToArray()
- 打印表内存地址 string ToString()
- 修改值和获取值
修改:tab[index] = xxx 或者 tab[“xxx”] = xxx
修改:table.SetTable< T >(string,T)
修改:table.RawSet<K, V>(K,V)
修改:RawSetIndex< T >(int , T)
获取:T RawGetIndex< T >(int)
获取:tab[index]或者tab[“xxx”]
获取:T table.GetTable< T >(string)
获取:V table.RawGet<K, V>(K)
lua表如下

修改和复制代码如下:

打印如下:

- 获取长度 tab.Length
- LuaTable中的func方法
获取方法 GetLuaFunction(“key”)
获取方法 RawGetLuaFunction(“key”)
执行方法无返回值无参数 func1.Call()
执行方法无返回值 func1.Call< T >(T) 支持多参数这里不详细写了
执行方法有返回值无参数 R func1.Invoke< R >()
执行方法有返回值有参数 R func1.Invoke<T , R>(T) 支持多参数这里不详细写了
lua表如下:

代码如下:

打印如下:

UnityC#中LuaArrayTable、LuaDictTable、LuaDictTable<K,V>
它们都继承自IEnumerable< T >相当于 Array Dictionary List使用方式
遍历可用下面的方法
var itor = tab.GetEnumerator();while (itor.MoveNext()){Debug.LogError("itor.Current.Key = " + itor.Current.Key + " ,itor.Current.Value = " + itor.Current.Value);}itor.Dispose();
还可以辅助LuaTable转换成对应的List和Dictionary<K,V>
相关文章:
Unity C#中LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查
LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查 介绍Lua表lua表初始化lua移除引用lua中向表中添加数据lua中表中移除数据lua表中连接数据lua表中数据排序获取lua表长度获取表中最大值 UnityC#中LuaTableUnityC#中LuaArrayTable、LuaDictTable、LuaDictTable<K,V>…...
Spring常见面试题
https://blog.csdn.net/a745233700/article/details/80959716?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169847982516800213061720%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id169847982516800213061720&biz_id0&…...
通过Vue自带服务器实现Ajax请求跨域(vue-cli)
通过Vue自带服务器实现Ajax请求跨域(vue-cli) 跨域 原理:从A页面访问到B页面,并且要获取到B页面上的数据,而两个页面所在的端口、协议和域名中哪怕有一个不对等,那么这种行为就叫跨域。注意:类…...
Vue2-计算属性的用法
题记 vue2计算属性的用法 反转字符串 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>实例</title> <script src"https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> </hea…...
SM3加密udf
SM3加密udf maven xml <dependencies> <!-- 配置日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dep…...
ce从初阶到大牛(两台主机免密登录)
一、配置ssh远程连接 实现两台linux主机之间通过公钥验证能够互相实现免密登陆 1.确认服务程序是否安装 rpm -qa | grep ssh 2.是否启动 ps -aux | grep ssh 3.生成非对称公钥 ssh-keygen -t rsa 4.公钥发送到客户端 cd /root/.ssh/ ssh-copy-id root192.168.170.134 因为…...
CS224W2.3——传统基于特征的方法(图层级特征)
前两篇中我们讨论了节点层级的特征表示、边层级的特征表示: CS224W2.1——传统基于特征的方法(节点层级特征)CS224W2.2——传统基于特征的方法(边层级特征) 在这篇中,我们将重点从整个图中提取特征。换句话说,我们想要描述整个图结构的特征…...
【CSS】包含块
CSS规范中的包含块 包含块的内容: 元素的尺寸和位置,会受它的包含块所影响。 对于一些属性,例如 width, height, padding, margin,绝对定位元素的偏移值(比如 position 被设置为 absolute 或 fixed)&…...
[SpringCloud] Nacos 简介
目录 一、Nacos,启动! 1、安装 Nacos 2、运行 Nacos 3、Nacos 服务注册 二、Nacos 服务多级存储模型 1、服务跨集群分配 2、NacosRule 负载均衡(优先本地) 3、服务实例的权重设置 4、环境隔离 三、Nacos 注册中心细节分…...
TypeScript - 字符串的字面类型
啥是字面量类型 字面量类型,是限制了一个字符串变量的取值范围只能某几个固定字符串中的一个。 我感觉 与枚举类型有异曲同工之妙。 字符串字面量类型有啥用 没啥用。 就是来限制字符串变量不能随便赋值的。 定义一个我看看 让你读书,但是只有四本书可以…...
CRM客户管理系统源码 带移动端APP+H5+小程序
CRM客户管理系统源码 带移动端APPH5小程序 开发环境: thinkphp mysql 功能介绍: 1、 办公管理:审批管理、工作报告、日程管理、办公审批、公告管理 2、 客户管理:我的客户、客户列表、成交客户、行业类别、预查、地区列表、客户状态、客…...
Mac版好用的Git客户端 Fork 免激活
Fork是一款强大的Git客户端软件,在Mac和Windows操作系统上都可以使用。汇集了众多先进的功能和工具,可以帮助用户更方便地管理和控制Git仓库。 Fork的界面简洁直观,易于使用。它提供了许多高级的Git功能,如分支管理、合并、提交、…...
有一个带头结点的单链表L,设计一个算法使其元素递增有序
有一个带头结点的单链表L,设计一个算法使其元素递增有序 代码思路: 我这里懒得搞那个指针了,直接遍历一遍链表,把链表的元素复制到数组arr里面 对数组A进行一下排序,排完之后再把元素复制到L里面。 至于排序你用啥算…...
JAVA将EEE MMM dd HH:mm:ss zzz yyyy日期格式化为yyyy-MM-dd HH:mm:ss形式
1、将EEE MMM dd HH:mm:ss zzz yyyy格式的数据转换成yyyy-MM-dd HH:mm:ss 代码如下 public static void main(String[] args) throws ParseException {String dateStr "Mon Oct 26 15:19:15 CST 2020";DateFormat cstFormate new SimpleDateFormat("yyyy-MM…...
【Qt】文件系统
文章目录 文件系统文件操作案例:显示路径到标题框,显示内容到文本框对文件进行写操作获取文件相关信息 文件系统 Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力,下面是 I/O 设备的类图: QIO…...
PostgreSQL 基础知识
执行环境: psql 1. 创建一个表格 CREATE TABLE customers ( customer_id serial PRIMARY KEY,firstname VARCHAR(100) NOT NULL,lastname VARCHAR(100) NOT NULL,username VARCHAR(50) UNIQUE NOT NULL,password VARCHAR(50) NOT NULL,email VARCHAR(255) UNIQUE …...
基于 ResNet18 架构使用 deformable convolution的车道线检测
下面是一个基于关键点的车道线检测网络的 PyTorch 代码示例,其中使用了 deformable convolution。该代码示例基于 ResNet18 架构,可以根据实际情况进行修改。 首先,需要导入必要的库和模块: import torch import torch.nn as nn…...
C++in/out输入输出流[IO流]
文章目录 1. C语言的输入与输出2.C的IO流2.1流的概念2.2CIO流2.3刷题常见while(cin >> str)重载强制类型转换运算符模拟while(cin >> str) 2.4C标准IO流2.5C文件IO流1.ifstream 1. C语言的输入与输出 C语言用到最频繁的输入输出方式就是scanf ()与printf()。 scanf…...
MongoDB的安装
MongoDB的安装 1、Windows下MongoDB的安装及配置 1.1 下载Mongodb安装包 下载地址: https://www.mongodb.com/try/download http://www.mongodb.org/dl/win32 MongoDB Windows系统64位下载地址:http://www.mongodb.org/dl/win32/x86_64 MongoDB W…...
SQL查询优化---如何查询截取分析
慢查询日志 1、慢查询日志是什么 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。 具体指运行时间超过long_query_time值的…...
马克思主义原理期末速成指南:7天高效复习法(附思维导图)
马克思主义原理期末速成指南:7天高效复习法(附思维导图) 距离期末考试只剩一周,面对厚重的教材和庞杂的知识点,许多同学常陷入"背了忘、忘了背"的循环。这套方法论经过三届学生实战验证,能在7天内…...
实测梦幻动漫魔法工坊:用LoRA调整画风,轻松打造不同风格的动漫作品
实测梦幻动漫魔法工坊:用LoRA调整画风,轻松打造不同风格的动漫作品 1. 工具概览 梦幻动漫魔法工坊是一款基于Diffusion模型和LoRA微调技术的动漫图像生成工具。它最大的特点是通过简单的界面操作,就能生成各种风格的二次元图像,…...
实战案例:基于快马平台开发copaw本地部署的智能文档摘要应用
今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——基于copaw本地部署的智能文档摘要工具。这个工具特别适合需要处理大量文档的团队或个人,能快速提取核心内容,提高工作效率。 项目背景与需求 在日常工作中,我们经常需要阅读大量…...
量子机器学习实战:在快马平台使用qorder构建分类器解决真实问题
量子机器学习听起来像是科幻小说里的概念,但借助qorder框架和InsCode(快马)平台,我们完全可以动手实践一个真实的量子分类器项目。最近我用这个组合解决了一个简单的二分类问题,整个过程比想象中顺畅许多,下面分享具体实现思路和关…...
Redis 从入门到精通(七):集合操作详解
系列导读:本篇将深入讲解 Redis 集合(Set)的所有操作命令及实际应用场景。 文章目录一、集合命令总览二、基础操作命令2.1 添加与删除2.2 检查与统计2.3 随机操作2.4 移动元素三、集合运算命令3.1 交集3.2 并集3.3 差集四、实战应用场景4.1 标签系统4.2 社交关系4.3…...
用I.MX6ULL和MX1508驱动28BYJ-48步进电机:从硬件接线到Linux驱动调试全记录
I.MX6ULL与MX1508驱动28BYJ-48步进电机实战指南 1. 项目概述与硬件选型 28BYJ-48步进电机因其性价比高、控制简单等特点,在嵌入式开发领域广受欢迎。这款四相八拍永磁减速型电机,配合I.MX6ULL开发板和MX1508驱动模块,可以构建一个完整的电机控…...
利用快马平台快速生成华网三百每年cn企业官网原型,十分钟验证建站方案
最近在帮朋友的公司华网.三百每年.cn做官网原型设计时,发现用传统方式从零开始写代码太耗时。后来尝试了InsCode(快马)平台,十分钟就搞定了可交互的响应式网站原型,效果出乎意料的好。这里分享下具体操作和心得: 明确原型需求 作为…...
PlugY插件:暗黑破坏神2单机模式的终极增强指南
PlugY插件:暗黑破坏神2单机模式的终极增强指南 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 还在为暗黑破坏神2单机模式的种种限制而烦恼吗?…...
3分钟搞定抖音批量下载:开源工具助你高效获取无水印视频
3分钟搞定抖音批量下载:开源工具助你高效获取无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…...
快速原型实践:利用快马AI一键生成正版软件9.1自动化安装脚本
快速原型实践:利用快马AI一键生成正版软件9.1自动化安装脚本 最近在帮朋友部署一个数据分析环境,需要批量安装正版软件9.1版本。手动安装不仅耗时,还容易出错。于是我开始研究如何用Python写一个自动化安装脚本,没想到在InsCode(…...
