Lua 编程
wiki
这里的页面与 Lua 编程技术相关,可用于几乎任何程序。该目录涵盖了几种编程风格、范例和设计模式,以及一些低级算法。
编程范例
模块编程
ModulesTutorial
- 创建和使用 Lua 模块
TheEssenceOfLoadingCode
- 在 Lua 中加载外部代码的方法
ModuleExecutionProposal
- 新的命令行开关
-p
用于将包模块作为脚本运行
自定义定义和加载器
ModuleDefinition
- 定义模块的方法
LuaModulesLoader
- 标准 Lua 模块加载器的 Lua 实现
BinaryModulesLoader
- 标准二进制模块加载器的 Lua 实现
HashedModulesLoader
- 在加载前验证模块加密哈希的模块加载器
命名空间安排
ModuleReview
- 对现有 Lua 模块进行分类、质量保证和标准化的工作
LuaSearch
- 提供 Lua 模块和文档集中定位器(如 CPAN)的工作
StandardLibraries
-
std
命名空间:os, io, getopt, string, regex, xml, list/set/table, object, 和 math 模块
LuaRocks
-
rocks
命名空间:一套包含依赖信息的自包含软件包
面向对象编程
参见
ObjectOrientedProgramming
。
声明式和函数式编程
CurriedLua
- Lua 中的柯里化函数
FunctionalLibrary
- 从 Haskell、Python 等移植一些方便的函数式实用工具
ShortAnonymousFunctions
- 比 function() return ... end 更简洁地表达匿名函数
数据结构
FunctionalTuples
- 通过函数实现元组(设计模式和教程)
MutableFunctions
- 使用函数模拟表 (设计模式) 的语义
RecursiveDataTypes
- 处理递归数据类型 (设计模式和教程)
ListComprehensions
- 列表推导式实现
记忆化和惰性求值
RandomSample
- 惰性表,惰性求值的一个简单说明(设计模式)
FuncTables
- 使用可调用表进行函数记忆化(设计模式、代码和教程)
HammingNumbersVariant
- 枚举汉明数,带惰性列表 (函数)
函数式文本处理
FiltersSourcesAndSinks
- 讨论过滤器链,过滤器是接受连续输入块并产生连续输出块的函数
GenericInputAlgorithms
- Lua 中的函数式、AWK 风格的文本处理
并发和事件驱动编程
MultiTasking
- Lua 中的多任务/多线程方法
FiniteStateMachine
- 有限状态机 (FSMs) (设计模式)
协程
CopasExample
- 使用 Copas 库的 TCP 套接字服务器 (示例)
CoroutinesAsConnectionHandlers
- 使用协程处理多个套接字的基础结构 (设计模式)
CoroutinesAsEventHandlers
- 处理事件响应程序的基础结构 (设计模式)
FunWithCoroutines
- 使用协程的技巧:反转字符串和控制反转 (设计模式)
源代码预处理和元编程
请参阅
LuaDomains
。
设计模式、编程技术、代码结构
错误和异常处理
参见
ErrorHandling
。
运算符重载
LuaVirtualization
- 可以/不能挂钩的操作
CustomOperators
- 使用自定义运算符的方法
PointAndComplex
- 关于 Lua 中运算符重载的评论
其他
StatementsInExpressions
- 表达式中的赋值和局部声明(技巧和设计模式)
ExpressionsAsStatements
- 将表达式用作语句(技巧和设计模式)
ResourceAcquisitionIsInitialization
, RAII - 在作用域退出时自动释放已获取的资源(设计模式、模块)
DecoratorsAndDocstrings
- 将元数据和帮助关联到对象(设计模式)
SwitchStatement
- 在 Lua 中模拟 C 风格的 switch 语句 (设计模式)
GotoStatement
- goto 语句
WithStatement
- 实现 "with" 结构(如 JavaScript
?
等)
TemplatePattern
- 模板方法模式的实现(示例代码)
MakingLuaLikePhp
- 在 Lua 中实现的类似 PHP 的函数(函数)
MakingLuaLikeRuby
- 在 Lua 中模拟 Ruby 的一些语义(设计模式)
约定和讨论
LuaStyleGuide
- 推荐的 Lua 编码实践
LuaDesignPatterns
- 其他设计模式和讨论
LuaHacks
- Lua 中问题的非常规方法
算法
OptimizedSampleCode
- 执行指定任务的最佳算法
数据结构和类型
定义
参见
DataStructures
。
操作
BitwiseOperators
- 各种位运算符实现
SetOperations
- 测试集合或列表成员资格(设计模式)
CopyTable
- 返回表的深拷贝(函数)
ComparisonByValue
- 使表按值而不是按引用比较其键
SetVariablesAndTablesWithFunction
- 使用点表示法递归构建和设置表字段,例如 "x.y.z"(函数和设计模式)
TableSerialization
- 将递归表转换为字符串或文件
TableUtils
- 对表的其他操作
搜索、排序、遍历、迭代器
有序迭代器
OrderedTable
- 按键插入顺序迭代表 (函数和设计模式)
OrderedTableSimple
- 按键插入顺序迭代表 (函数和设计模式)
OrderedAssociativeTable
- 使用排序索引迭代表 (函数和设计模式)
RangeIterator
- 一个'range'迭代器函数,行为类似于基本 for 循环(函数)
SortedIteration
- 按键顺序迭代表 (函数)
SortedIterationSimple
- 按键顺序迭代表 (函数)
GeneralizedPairsAndIpairs
- 重新实现的 next、pairs 和 ipairs 以调用元方法(设计模式和函数)
NextMetamethodForIndexTable
- 类似于 next() 的函数,用于迭代表与表的 __index(函数和设计模式)
排序
LazySort
- 只排序表中必要的部分 (函数和教程)
LuaSorting
- 纯 Lua 中的 shellsort 实现示例 (函数)
在已排序数组中搜索
BinarySearch
- 通过二分查找算法在排序数组中搜索值 (函数)
BinaryInsert
- 通过二分查找算法将值插入排序数组 (函数)
InterpolatingSearch
- 通过插值搜索算法在排序数组中搜索值 (函数)
字符串操作
CommandLineParsing
- Lua 中命令行解析的方法
RandomStrings
- 从定义的字符集中生成随机字符串 (函数)
转换为字符串和输出
StringInterpolation
- 在 Lua 中将变量插入字符串 (函数和设计模式)
TableSerialization
- 将表转换为字符串,反之亦然
LuaPrintf
- printf 字符串格式化的模拟 (函数)
FormattingNumbers
- 以货币格式格式化数字 (函数)
HexDump
- 以典型的“十六进制转储”格式转储字符串
文本处理和编码
请参阅
LuaDomains
。
数字
IntegerDomain
- 计算 Lua 可精确表示的整数的实际限制(函数)
FormattingNumbers
- 以货币格式格式化数字 (函数)
ReadWriteFormat
- 将整数值打包/解包到二进制字符串中的方法(函数)
SimpleRound
- 将数字四舍五入到 N 位小数(函数)
数学
请参阅
LuaDomains
。
时间和日期
TimeZone
- 以 +hhmm 或 -hhmm 格式获取可移植时区字符串(函数)
DateFormattingFunctions
- 将日期格式化为各种日期字符串格式(函数)
DayOfWeekAndDaysInMonthExample
- 计算月份中的天数或日历日中的星期几(函数)
DisplayCalendarInHtml
- 在 HTML 中创建日历(函数)
文件系统
ExtensionProposal
- 扩展的 os 和 io API(模块)
DirTreeIterator
- 用于递归文件/目录遍历的迭代器函数(函数)
FileInputOutput
- 输入/输出文件实用函数(函数)
FileGlob
- 使用 glob 表达式匹配文件名(函数)
LuaRecipes
- 获取文件或目录列表
另请参阅
LuaDomains
- 特定应用领域的处理方法、技术和模块
LuaCoding
- 代码创建、构建、绑定、测试、优化、维护和共享
LuaAddons
- 一个不在本站上的“Lua 相关事物”目录
LuaLinks
- 一个外部 Lua 链接目录,包括文章、教程和比较
RecentChanges
·
preferences
编辑
·
历史
最后编辑于 2012 年 2 月 5 日上午 8:19 GMT
(diff)