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
- 有限状态机 (FSM)(设计模式)
协程
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
- 类似于基本 for 循环的“范围”迭代器函数(函数)
SortedIteration
- 按键顺序迭代表(函数)
SortedIterationSimple
- 按键顺序迭代表(函数)
GeneralizedPairsAndIpairs
- 重新实现 next、pairs 和 ipairs 以调用元方法(设计模式和函数)
NextMetamethodForIndexTable
- 用于迭代表与表 __index 的 next() 类函数(函数和设计模式)
排序
LazySort
- 只对表中必要的部分进行排序(函数和教程)
LuaSorting
- 纯 Lua 实现的 Shell 排序示例(函数)
在排序数组中搜索
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 链接目录
最近更改
·
偏好设置
编辑
·
历史记录
最后编辑于 2012 年 2 月 5 日下午 2:19 GMT
(差异)