sp; } ) end
COLORS = {"red", "blue", "green", "yellow", "black"} color = Memoize( function(node) return COLORS[math.random(1, table.getn(COLORS))] end )
将这段代码放到 Lua 解释器中,然后输入 print(color., color., color.)。您将会看到类似于 blue black blue 的内容。
这段代码接收一个键值 node,查找 node 指定的颜色。如果这种颜色不存在,代码就会给 node 赋一个新的随机选择的颜色。否则,就返回赋给 node 的颜色。在前一种情况中,__index 元方法被执行一次以分配一个颜色。后一种情况比较简单,所执行的是快速散列查找。
Lua 语言提供了很多其他功能强大的特性,所有这些特性都有很好的文档进行介绍。在碰到问题或希望与专家进行交谈时,请连接 Lua Users Chat Room IRC Channel(请参见 参考资料)获得非常热心的支持。 嵌入和扩展
除了语法简单并且具有功能强大的表结构之外,Lua 的强大功能使其可以与宿主语言混合使用。由于 Lua 与宿主语言的关系非常密切,因此 Lua 脚本可以对宿主语言的功能进行扩充。但是这种融合是双赢的:宿主语言同时也可以对 Lua 进行扩充。举例来说,C 函数可以调用 Lua 函数,反之亦然。
Lua 与宿主语言之间的这种共生关系的核心是宿主页码:[1] [2] [3] [4] [5] [6] [7] 第2页、共7页 |