【XLua】010-C#访问Lua中的table:Dictionary<>与List<>


通过Dictionary<>与List<>访问table

  • 1、Lua脚本代码
person={
name="fex",age="22",12,12,13,
eat=function(self,a,b)   --声明方法1:self为该表自身的参数,类似C#中this
    print(a+b)
    print("我吃了")
end

}
--[[
--声明方法2:
function person:eat(a,b)
    print(a+b)
end

--声明方法3:
function person.eat(self,a,b)
    print(a+b)
end
--]]

  • 2、C#脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;

public class _004_CsharpCallLua : MonoBehaviour
{

    private LuaEnv env;

    void Start()
    {
        env = new LuaEnv();

        env.DoString("require 'CSharpCallLua'");

 
        //3.通过Dictionary<> 与 List<>
        Dictionary<string, object> dict = env.Global.Get<Dictionary<string, object>>("person");
        foreach(string key in dict.Keys)
        {
            print(key + ":" + dict[key]);
        }

        print("-------------");
        List<object> list = env.Global.Get<List<object>>("person");
        foreach(object o in list)
        {
            print(o);
        }

    }

    private void OnDestroy()
    {
        env.Dispose();
    }

}

  • 3、输出结果:

img.jpg

注意:

1.使用Dictionary<>与List<>方式比较轻量级,不用声明类与接口

2.使用Dictionary<>可以访问table中带有key的元素

3.使用List<>可以访问到table中的没有key的单独元素

4.Dictionary中的具体键值类型由实际需求而定,List<>也是如此

5.通常将Dictionary与List<>结合使用访问table中的所有元素

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,759评论 0 38
  • 名称 说明 docLua 相关的文档,包括了编译文档、接口文档等 Makefile 编译Lua使用,在...
    一川烟草i蓑衣阅读 5,441评论 0 1
  • 虽然计算机可以做很多事情,但它不会思考,它需要接受系统化的指令来工作。大部分用户通过应用程序为计算机指派任务,软件...
    JunChow520阅读 11,975评论 0 4
  • 1. 写在前面 很多时候我们都需要借助一些脚本语言来为我们实现一些动态的配置,那么就会涉及到如何让脚本语言跟原生语...
    杰嗒嗒的阿杰阅读 8,733评论 9 31
  • 大二那年,当我们还在宿舍吃泡面追美剧谈论哪个女生漂亮的时候。阿东就每天早出晚归了,他不是去拍拖而是帮一个老板卖牛奶...
    我的创业故事采访阅读 3,047评论 1 3

友情链接更多精彩内容