Ruby printf参数如何工作?
有人可以帮我理解下面的表达方式吗?
printf("%3d - %s\n", counter, name)
该行打印出类似这样的内容6 - Install Adobe software
我已查阅信息并阅读参考资料,但我找不到简单的答案,我有点困惑。 如果您可以参考我的好参考,请这样做。
%3d
好的,根据我的理解, %3d
是字符或空格的数量。 请指出一个解释它的参考。
%s\n
我无法弄清楚这是做什么的。 我猜\n
是换行符或类似的东西,但通过查看输出它似乎不像那样工作。
为什么用逗号分隔counter
和name
变量?
通过查看输出似乎%3d
被counter
替换, %s\n
被name
替换。 我不确定它是如何工作的但我想理解它。
谢谢!
有关语法,请查看任何printf文档,但请查看ruby-doc上的sprintf文档 。
它们之间用逗号分隔,因为它们是函数的独立参数,但这或多或少是语法糖。 想想varargs。
不确定你对%s\n
是什么意思,它是一个字符串然后换行:这是它输出的内容。
如果您的问题具体是“代码如何将格式化字符串和一组参数转换为输出”我可能会搜索源代码,例如,一个微小的嵌入式printf 。 Nutshell版本是搜索格式字符串的格式选项,它们使用相关参数,输出格式正确的字符串。 这是一个小小的DSL。