请教LUA高手一段代码,希望帮忙谢谢!

简介: 以下是一段LUA的代码,请教高手“perm{"a", "b", "c"}”为什么能返回一个tablefunction permgen (a, n) if n == 0 then  coroutine.yield(a) else  for i=1,n do    -- put i-th elemen...

以下是一段LUA的代码,请教高手“perm{"a", "b", "c"}”为什么能返回一个table
function permgen (a, n)
 if n == 0 then
  coroutine.yield(a)
 else
  for i=1,n do

   -- put i-th element as the last one
   a[n], a[i] = a[i], a[n]

   -- generate all permutations of the other elements
   permgen(a, n - 1)

   -- restore i-th element
   a[n], a[i] = a[i], a[n]

  end
 end
end
function perm (a)
 local n = table.getn(a)
 local co = coroutine.create(function () permgen(a, n) end)
 return function () -- iterator
  local code, res = coroutine.resume(co)
  return res
 end
end

function printResult (a)
 for i,v in ipairs(a) do
  io.write(v, " ")
 end
 io.write("\n")
end

for p in perm{"a", "b", "c"} do
 printResult(p)
end
请教高手“perm{"a", "b", "c"}”为什么能返回一个table

相关文章
|
7月前
|
C++ 索引 Python
Lua中self 、自索引及其面向对象应用代码示例
Lua中self 、自索引及其面向对象应用代码示例
|
6月前
|
监控 数据处理 开发者
利用Lua代码简化局域网管理软件开发
使用Lua脚本语言可以提升局域网管理软件的开发效率和代码可维护性。示例包括:使用LuaSocket扫描局域网设备;通过动态加载和应用配置文件展示配置管理;利用实时监控功能,当网络流量超过阈值时触发警报;以及通过HTTP POST自动提交监控数据到服务器。Lua的简洁语法和强大功能简化了网络管理和自动化任务。
121 3
|
6月前
|
JSON 监控 数据格式
使用Lua代码扩展上网行为管理软件的脚本功能
本文介绍了如何使用Lua脚本增强上网行为管理,包括过滤URL、记录用户访问日志、控制带宽和自动提交监控数据到网站。Lua是一种轻量级语言,适合编写扩展脚本。文中提供多个示例代码,如URL过滤器、用户活动日志记录器和带宽控制器,帮助用户根据需求定制网络管理功能。通过这些示例,用户可以快速掌握Lua在上网行为管理中的应用。
180 4
|
7月前
|
存储 监控 数据管理
Lua代码解析:实现上网行为监管软件的自定义规则引擎
在当今数字化时代,网络安全和数据隐私保护备受关注。为了确保网络安全和合规性,许多组织和机构需要监管和管理其员工或用户的上网行为。为了实现这一目标,开发一款高效的上网行为监管软件至关重要。本文将介绍如何使用Lua语言开发一种自定义规则引擎,以实现上网行为监管软件的自定义规则引擎。
233 0
|
消息中间件 数据采集 Java
Lua集成kafka第三方插件代码介绍|学习笔记
快速学习Lua集成kafka第三方插件代码介绍
Lua集成kafka第三方插件代码介绍|学习笔记
|
安全
【Lua篇】静态代码扫描分析(一)
静态代码分析是一种通过检查代码而不是执行程序来发现源代码中错误的手段。通常可以帮助我们发现常见的编码错误,例如: 语法错误 违反制定的标准编码 未定义的变量 安全性问题 静态代码分析可以通过评估编写的代码来提高代码质量;可以稳定的运行且可以轻松自动化;增加了在源代码中发现漏洞的可能性,从而提高应用安全;由于是针对源码扫描可以在离线的开发环境中完成。但是静态代码分析并不能完全保证编写的代码没有Bug,它也有一些缺点,
987 0
【Lua篇】静态代码扫描分析(一)
|
监控 安全 测试技术
【Lua】代码执行覆盖率
以黑盒测试来讲,简单概括为以下几个方面来进行保障: 1. 在产品的需求分析阶段,参与需求的评审,发现需求设计中的不合理性以及存在风险的设计等,从源头发现问题,这样可以花费最小的代价获得最高的收益。 2. 在开发设计编码阶段,如果有设计评审环节,需要参与设计讨论,这样就可以尽早的了解技术的实现逻辑,获取更多影响测试质量的因素,完善测试用例。可能在游戏行业很少会进行编码设计环节的评审,但作为测试人员最好可以在技术忙碌之余主动去了解设计实现,知道技术设计的逻辑流程,从而编写具有针对性的测试用例。
387 0
【Lua】代码执行覆盖率
【Lua篇】静态代码扫描分析(四)规则检查
通过前面三篇文章已经初步实现了将Lua源代码文件读取解析成语法树,现在就可以通过得到的语法树进行指定规则的代码扫描检查。下图简单列举了一下单个Lua文件内部的语法关系情况(注意并非真正的类图,也没有列举完全部的节点类型)。
523 0
【Lua篇】静态代码扫描分析(四)规则检查
|
自然语言处理 C++
【Lua篇】静态代码扫描分析(三)语法分析
一、语法分析 通过将词法分析获取的Token流按照目标语言的语法进行解析的过程,例如解析函数声明、函数调用、变量声明、各种语句等。 二、Lua语法分析 在写语法分析程序前,先需要了解Lua的语句和语法,然后进行逐个解析。 下面简单列举一下Lua的语句:
462 0
【Lua篇】静态代码扫描分析(三)语法分析