Lua语言:如何使用类似Python列表综合的功能

我是 Lua 新手,想知道是否有类似 Python 中定义 listmetatable 的简洁方式:

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

如果有示例将不胜感激。

点赞
用户417415
用户417415

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-03 12:27:02