当我开始学习 Unix 时,我很早就接触到了 echo 命令。同样,我最初的 Python 课程也涉及到了 print 函数。再想起学习 C++ 和 Java 时学到 cout 和 systemout。似乎每种语言都骄傲地宣称拥有一种方便的单行输出方法,并生怕这种方式要过时一样宣传它。
但是当我翻开中级教程的第一页后,我遇到了 printf,一个晦涩难懂的、神秘莫测的,又出奇灵活的函数。本文一反向初学者隐藏 printf 这个令人费解的传统,旨在介绍这个不起眼的 printf 函数,并解释如何在几乎所有语言中使用它。
printf 简史
术语 printf 代表“格式化打印print formatted”,它可能最早出现 Algol 68 编程语言中。自从它被纳入到 C 语言后,printf 已经在 C++、Java、Bash、PHP 中一次次重新实现,并且很可能在你最喜欢的 “后 C” 语言中再次出现。
显然,它很受欢迎,但很多人认为它的语法很复杂,尤其是与 echo 或 print 或 cout 等替代的函数相比尤为明显。例如,这是在 Bash 中的一个简单的 echo 语句:
$ echo hello hello $
这是在 Bash 中使用 printf 得到同样结果:
$ printf "%s\n" hello hello $
但是所增加的复杂性反而让你拥