8

我是 Lua 的新手,我想知道是否有一些紧凑的方法可以像我们在 Python 中那样在 Lua 中定义 a list、 a :metatable

lis = [i for i in set if i>0]

任何例子将不胜感激。

4

1 回答 1

2

Lua 没有原生列表

然而,正如@joachim 指出的那样,您可以使用一些技巧来实现它。

local comp = require 'comprehension' . new()
comp 'table(v,k for k,v in pairs(_1))' {[3]=5, [5]=7} 

它会产生:

{[5]=3, [7]=5}

请注意,comprehension这在普通的 5.2.x Lua 中不起作用。它需要 Penlight Lua 库:http ://stevedonovan.github.com/Penlight/api/index.html

您还可以使用MetaLuaLuaMacros

于 2013-02-03T12:27:02.423 回答