Lua字符串格式选项
这可能看起来是一个愚蠢的问题,但是 string.format 中使用的替换字符串的符号是什么?有人可以向我指出一个简单的示例如何使用它吗?
原文链接 https://stackoverflow.com/questions/1811884
在你的硬盘中应该有一个叫做“Lua快速参考”的html文件,如果你使用的是安装包。
(例如:../Lua/5.1/docs/luarefv51.html)
在那里,你会找到,除其他内容外,
string.format (s [, args ])
- 格式化指令
- 格式化字段类型
- 格式化标志
- 格式化示例
PiL 第20章 在末尾描述了 string.format
:
string.format
函数是一个格式化字符串的强大工具,通常用于输出。它返回一个格式化过的版本,根据其第一个参数即所谓的格式化字符串所给出的说明以及其变量数的参数。格式化字符串的规则类似于标准 C 的printf
函数:它由常规文本和指令组成,这些指令控制每个参数在格式化字符串中应放置的位置和方式。
Lua 参考手册 中指出:
格式化字符串遵循标准 C 函数家族
printf
的规则。唯一的区别是不支持选项/修饰符*
、l
、L
、n
、p
和h
,但有一个额外的选项q
。
该函数实现由strlib.c
中的 str_format()
实现,它解释了格式化字符串,但是在确定每个字段所期望的值类型(基本上是字符串或数字)以对应每个字段之后,将委托给C库的实现 sprintf()
来实际格式化每个字段。
为了补充其他答案:Lua 有一个布尔数据类型,而 C 没有。C 使用数字表示,其中 0 表示 false
,其他所有数字都表示 true
。
但是,在 Lua 中要将布尔值格式化为字符串,
local text = string.format("bool is %d", truth)
至少在 Hammerspoon 中会出现以下错误:
bad argument #2 to 'format' (number expected, got boolean)
您可以使用 %s
对布尔值进行格式化(就像对字符串一样):
local text = string.format("bool is %s", truth)
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
string.format
在 Lua 中的用法和c
语言中的printf
函数相同:https://cplusplus.com/reference/cstdio/printf/
但是有一些例外情况,可以在这里查看:
http://pgl.yoyo.org/luai/i/string.format