Ruby printf参数如何工作?

有人可以帮我理解下面的表达方式吗?

printf("%3d - %s\n", counter, name) 

该行打印出类似这样的内容6 - Install Adobe software

我已查阅信息并阅读参考资料,但我找不到简单的答案,我有点困惑。 如果您可以参考我的好参考,请这样做。

%3d好的,根据我的理解, %3d是字符或空格的数量。 请指出一个解释它的参考。

%s\n我无法弄清楚这是做什么的。 我猜\n是换行符或类似的东西,但通过查看输出它似乎不像那样工作。

为什么用逗号分隔countername变量?

通过查看输出似乎%3dcounter替换, %s\nname替换。 我不确定它是如何工作的但我想理解它。

谢谢!

有关语法,请查看任何printf文档,但请查看ruby-doc上的sprintf文档 。

它们之间用逗号分隔,因为它们是函数的独立参数,但这或多或少是语法糖。 想想varargs。

不确定你对%s\n是什么意思,它是一个字符串然后换行:这是它输出的内容。

如果您的问题具体是“代码如何将格式化字符串和一组参数转换为输出”我可能会搜索源代码,例如,一个微小的嵌入式printf 。 Nutshell版本是搜索格式字符串的格式选项,它们使用相关参数,输出格式正确的字符串。 这是一个小小的DSL。

Interesting Posts