有没有一种方法可以设置printf函数的输出序列?

# 例如
printf("%d, %d", num1, num2)
string.format("%d, %d", num1, num2)

我想先输出 num2 但是不能修改参数表中的参数顺序 只需修改格式化字符串以达到目的。

点赞
用户775806
用户775806

在 C 或 C++ 的 printf 中不存在这种东西。

POSIX 规定 printf 和相关函数可以使用位置参数,作为 C 的扩展:

printf("%2$d, %1$d", 33, 42); // 输出 42, 33

微软的善良之人支持这个特性,但为了我们的方便,他们将函数命名为 _printf_p 等不同的名字。

Lua 的 format 在 4.0 版本之前支持这个特性,但在 5.0 版本中,某个神灵决定将其宣布为“过时”,并将该功能删除。我不知道 Lua 是否提供了任何替代功能。

2015-08-03 03:53:47
用户1800152
用户1800152
# 将下面翻译成中文并且保留原本的 markdown 格式

嘿,我用这个方法到达了这里: print("test rsult"..string.gsub("hello param1 world from Lua param2", "param%d", {param1=25, param2="Jesus"}))


```python
输出结果测试..从 Lua param2 的 param1 世界中更改字符串后:25Hello Jesus world from Lua Jesus
2015-08-03 04:40:49