上海建站模板网站,外贸推广服务公司,wordpress 编辑器 代码,域名可以同时做邮箱和网站么LuaTable、LuaArrayTable、LuaDictTable中数据的增删改查 介绍Lua表lua表初始化lua移除引用lua中向表中添加数据lua中表中移除数据lua表中连接数据lua表中数据排序获取lua表长度获取表中最大值 UnityC#中LuaTableUnityC#中LuaArrayTable、LuaDictTable、LuaDictTableK,VK,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()转成LuaDictTableK, V LuaDictTableK, V ToDictTableK, V()转成object[] object[] ToArray()打印表内存地址 string ToString()修改值和获取值 修改tab[index] xxx 或者 tab[“xxx”] xxx 修改table.SetTable T (string,T) 修改table.RawSetK, V(K,V) 修改RawSetIndex T (int , T) 获取T RawGetIndex T (int) 获取tab[index]或者tab[“xxx”] 获取T table.GetTable T (string) 获取V table.RawGetK, V(K) lua表如下 修改和复制代码如下 打印如下 获取长度 tab.LengthLuaTable中的func方法 获取方法 GetLuaFunction(“key”) 获取方法 RawGetLuaFunction(“key”) 执行方法无返回值无参数 func1.Call() 执行方法无返回值 func1.Call T (T) 支持多参数这里不详细写了 执行方法有返回值无参数 R func1.Invoke R () 执行方法有返回值有参数 R func1.InvokeT , R(T) 支持多参数这里不详细写了 lua表如下 代码如下 打印如下
UnityC#中LuaArrayTable、LuaDictTable、LuaDictTableK,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和DictionaryK,V