private string luaString = @"
function test(dic)
iter = dic:GetEnumerator()
while iter:MoveNext() do --遍历字典
print('key'.. iter.Current.Key .. 'value' .. iter.Current.Value)
end
keys = dic.Keys --获取字典的键值数组
values = dic.Values --获取字典值的数组
iter = values:GetEnumerator()
while iter:MoveNext() do
print(iter.Current)
end
local hehe,val = dic:TryGetValue(1,nil) --尝试获取键的值,第一个返回状态,第二个才是值
print(val)
dic:Remove(2) --移除键值为2的元素
--跟C#字典的操作一样
end
";
private Dictionary<int,string> dicc = new Dictionary<int, string>();
void Start () {
LuaState lua = new LuaState ();
lua.Start ();
lua.DoString (luaString);
dicc.Add (1, "hello");
dicc.Add (2, "world");
LuaFunction func = lua ["test"] as LuaFunction;
func.BeginPCall ();
func.Push (dicc);
func.PCall ();
func.EndPCall ();
foreach (var item in dicc) {
Debug.Log (item.Value); //只输出了hello
}
func.Dispose ();
lua.CheckTop ();
lua.Dispose ();
}