August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
当需要将一部分计算任务独立实现的时候,可以将其定义为一个函数,因为这样可以:
·实现计算逻辑的分离;
·使代码更清晰(通过使用函数名);
·利用函数,使得同样的代码在程序中可以被多次使用;
·减少程序调试的工作量。
在本书的后续内容中,我们将看到很多解释上述原因的示例,并且还会再次谈及某个原因。注意,实际的应用程序可能会用到成百上千个函数,某些程序甚至会用到上百万个函数。显然,如果这些函数不能被清楚地划分和命名的话,任何人都不可能编写和理解这种包含大量函数的程序。而且,你发现很多函数会被重复使用,很快这将导致你厌倦于这种重复性的劳动。例如,编写处理x*x、7*7和(x+7)*(x+7)等的程序可能会令你高兴。但是,对完成同样功能的函数square(x)、square(7)和square(x+7)却可能会让你厌倦。这是因为,求平方是非常容易实现的,但对于复杂函数来说,情况大不相同:对于求平方根函数(C++中的sqrt)来说,程序员更喜欢使用sqrt(x)、sqrt(7)和sqrt(x+7),而不是每一次都重复实现相同的求平方根的代码(这些代码很长、很复杂)。实际上,大多数情况下,你根本不需要了解求解平方根函数的实现细节,而只需要知道sqrt(x)将返回x的平方根就可以了。
在8.5节中,我们将详细介绍相关的函数编写技巧。下面我们将给出另外一个示例。
如果我们想让主函数中的循环更简洁,可将程序改写为:
但我们为什么不用print_square()版本的程序呢?因为这个版本的程序实际上并不比square()版本的程序更简洁。因为: ...