Ruby的printf参数是什么意思?

时间:2013-01-24 16:05:16

标签: ruby printf

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

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

该行打印出类似6 - Install Adobe software

的内容

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

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

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

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

通过查看输出似乎{{​​1}}被%3d取代而counter%s\n取代。我不确定它是如何工作的,但我想了解它。

1 个答案:

答案 0 :(得分:12)

有关语法,请查看任何printf文档,但请查看sprintf docs on ruby-doc

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

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

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