news 2026/7/16 3:05:37

Lua学习笔记:库函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Lua学习笔记:库函数

基础函数

asset

断言。不为真则终止后续执行。

asset(BOOL <, MESSAGE>)

ipairs

用于遍历表(数组形式)。

for i, v in ipairs(TABLE) do
end

实际返回:next, TABLE, 0。

next

用于遍历表。

local NEXTINDEX, NEXTVALUE = next(TABLE <, INDEX>)

pairs

用于遍历表(哈希表形式)。

for k, v in pairs(TABLE) do
end

实际返回:next, TABLE, nil。

print

打印。

print(<VALUE<, ...>>)

tostring

转换成字符串。

local STR = tostring(VALUE)

type

返回数据类型。

local STR = type(VALUE)

coroutine

coroutine.create

创建协程。不会启动协程。

local COROUTINE = coroutine.create(FUNCTION)

coroutine.resume

恢复执行协程。

local STATUS, RETURNVALUE<, ...>|YIELDVALUE<, ...>|FAIL = coroutine.resume(COROUTINE <, RESUMEVALUE<, ...>>)

第一次执行时,RESUMEVALUE作为coroutine.create的FUNCTION的参数传入。后续执行时,RESUMEVALUE作为coroutine.yield的返回值。

当协程正常退出或让出时,返回true及退出或让出时的返回值;当协程非正常退出时,返回false和错误信息。

coroutine.wrap

创建协程,返回包装函数。

local WRAPFUNCTION = coroutine.wrap(FUNCTION)

WRAPFUNCTION类似coroutine.resume,但参数只包括RESUMEVALUE,返回值只包括RETURNVALUE|YIELDVALUE。

coroutine.yield

暂停协程,让出执行权。

local RESUMEVALUE<, ...> = coroutine.yield(<YIELDVALUE <, ...>>)

io

API有两种风格:一种是基于文件句柄(io.METHOD),另一种是基于当前操作的文件(FILE:METHOD)。

io.close

关闭文件。

io.close(<FILE>)

如不指定FILE,则关闭默认输出文件。

等同于file:close()

io.flush

将程序中的缓冲区数据刷新至文件。

io.flush()

等同于io.output():flush()

io.input

设置默认输入文件。

io.input(<FILE|FILENAME>)

io.lines

以只读模式打开文件,返回迭代器函数。

local FUNCTION = io.lines(<FILENAME <, ...>>)

每次调用迭代器函数都会从文件返回一行。当泛型for循环结束时,会自动关闭文件。

io.open

打开文件。

local FILE <, FAIL> = io.open(FILE <, MODE>)

如打开失败,则返回nil。

io.output

设置默认输出文件。

io.output(<FILE|FILENAME>)

io.popen

运行外部进程,并返回从此进程读写的文件句柄。

local FILE = io.popen(PROGRAM <, MODE>)

MODE可为:

  • a:追加。
  • r:只读。
  • w:只写。会清空文件。
  • a+:读写追加。
  • r+:读写。不清空文件,但会写覆盖。
  • w+:读写。会清空文件。

io.read

从文件读取内容。

local STR = io.read(<FORMAT>)

FORMAT可为:

  • a:读取余下所有内容。
  • l:读取一行,不包括换行符。默认值。
  • L:读取一行,包括换行符。
  • n:读取一个数值。
  • 整数:读取若干字节。

等同于io.input().read(<FORMAT>)

io.tmpfile

返回可读写的临时文件。进程结束时会被自动删除。

local FILE = io.tmpfile()

io.type

返回文件的状态类型。

var STR = io.type(FILE)

返回值可为:

  • closed file:关闭的文件。
  • file:打开的文件。
  • nil:文件句柄不存在。

io.write

写入文件。

io.write(<STR|NUMBER <, ...>>)

FILE:close

关闭文件。

FILE:close()

FILE:flush

将缓冲区数据刷新至文件。

FILE:flush()

FILE:lines

以只读模式打开文件,返回迭代器函数。

local FUNCTION = FILE:lines(<FILENAME <, ...>>)

每次调用迭代器函数都会从文件返回一行。当泛型for循环结束时,不会自动关闭文件。

FILE:read

从文件读取内容。

local STR = FILE.read(<FORMAT>)

FORMAT可为:

  • a:读取余下所有内容。
  • l:读取一行,不包括换行符。默认值。
  • L:读取一行,包括换行符。
  • n:读取一个数值。
  • 整数:读取若干字节。

FILE:seek

设置和获取当前文件位置。

location POSITION = FILE:seek(<WHENCE <, OFFSET>>)

WHENCE可为:

  • cur:当前位置。
  • end:文件结尾。
  • cur:文件开头。

FILE:setvbuf

设置输出文件的缓存模式。

FILE:setvbuf(MODE <,SIZE>)

MODE可为;

  • full:全缓存,缓存满后才输出。
  • line:行缓存,以行为单位输出。
  • no:无缓存,直接输出。

FILE:write

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 5:34:22

2026闭眼入!5款AI论文工具亲测,摆脱无效加班,初稿质量效率翻倍

对于学生、科研工作者而言&#xff0c;论文写作常常面临多重挑战&#xff1a;文献资料繁杂难以筛选、格式排版反复调整、重复率居高不下难以控制、逻辑结构梳理困难影响表达&#xff0c;这些痛点严重制约了写作效率与学术成果的呈现质量。在2026年AI技术不断突破的背景下&#…

作者头像 李华
网站建设 2026/7/13 5:17:25

Adobe GenP 3.0完整教程:免费解锁Adobe CC全系列软件的终极指南

Adobe GenP 3.0完整教程&#xff1a;免费解锁Adobe CC全系列软件的终极指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的高昂订阅费…

作者头像 李华
网站建设 2026/7/13 5:17:28

免费音乐解锁工具:3分钟掌握跨平台音乐解密完整指南

免费音乐解锁工具&#xff1a;3分钟掌握跨平台音乐解密完整指南 【免费下载链接】unlock-music-electron Unlock Music Project - Electron Edition 在Electron构建的桌面应用中解锁各种加密的音乐文件 项目地址: https://gitcode.com/gh_mirrors/un/unlock-music-electron …

作者头像 李华
网站建设 2026/7/13 5:17:27

如何用SetDPI轻松解决Windows多显示器DPI缩放难题?

如何用SetDPI轻松解决Windows多显示器DPI缩放难题&#xff1f; 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 当你面对多个显示器时&#xff0c;Windows的DPI缩放设置是否让你头疼不已&#xff1f;每个屏幕需要不同的缩放比例&#xff…

作者头像 李华
网站建设 2026/7/12 17:55:43

基于pytest的接口自动化测试框架:从设计到实战

1. 项目概述&#xff1a;为什么说pytest是接口自动化测试的“瑞士军刀”&#xff1f;如果你正在为如何高效、稳定地开展接口自动化测试而头疼&#xff0c;或者厌倦了那些笨重、配置繁琐的测试框架&#xff0c;那么今天聊的这个工具&#xff0c;很可能就是你一直在找的答案。我说…

作者头像 李华
网站建设 2026/7/12 15:32:45

Go语言实现后量子密码算法Kyber与Dilithium:原理、挑战与工程实践

1. 项目概述&#xff1a;为什么要在Go里搞后量子密码&#xff1f;最近几年&#xff0c;但凡关注点安全新闻的同行&#xff0c;应该都听过“量子计算机威胁”这个说法。简单讲&#xff0c;就是现在保护我们网上银行、加密通信的RSA、ECC这些公钥密码算法&#xff0c;在未来的大规…

作者头像 李华