8.7 小结
本章我们在学习类型为何物以及类型为什么有必要之前先学习了数是如何表现的。
用 10 个印记来表现数 10 这是最原始的计数方法。人类一直在探索如何用最简洁的方式来表达数字,于是发明了进位法。并且在追求效率的过程中发明了非逢十而是逢二进位的二进制方法。二进制法在计算机的数字表现上发挥着非常重要的作用。
另外,为了表现带有小数点的数发明了定点数和浮点数。现今,虽然浮点数得到了广泛的应用,但我们也看到了它的一些不足之处。
计算机中的数值是整数、浮点数还是其他类型的数,为了在计算机中管理这一信息,于是催生了类型。起初,类型中只加入了数值的种类信息,最后又有多种多样的信息加入进来。比如,能在这个数值上施加的操作、此函数可能抛出的异常等信息都被加入到类型中来了。
现在,像静态类型和动态类型那样连内存地址和使用时间都不一样的事物也被称为类型,这使得类型这种东西变得越来越难以捉摸。什么样的信息放在什么地方,在什么样的时间被使用,从这个视角来看反而更容易理解。
专栏
先掌握概要再阅读细节
关于面对庞大信息量心力交瘁时该怎么办的问题,我们在第 6 章 6.6 节 节末“学习讲求细嚼慢咽”专栏中介绍了三种方法。第二种方法就是“先掌握概要再阅读细节”。
书和文档都会有目录。浏览一遍目录便可以了解大概构造了。然后便可以开始正文的跳跃式阅读了。不要逐字逐句地读,首先看副标题和粗体字强调的内容、图表及其标题。
阅读源代码时,首先要看一眼文件夹结构和文件名。然后开始粗略地通读文件内容,对定义了的函数和类,以及经常被调用到的函数的名称要扫一眼。
不管哪种方法,它们的共通点都是要先掌握概要再渐进式地追求细节,这是大的原则。
阅读源代码时的切入口不一样。其中一种是使用调试器中的逐步执行功能,按照执行的顺序以及调用的层次关系作为切入口去阅读的方法。它也是一样地,首先是大致掌握程序的整个处理流,然后逐渐深入到函数中的处理过程中。
用这种方法阅读,可能会有信息在脑子里过了一下又淡去了的感觉。这时就需要试一试我们的最后一种手段——从头开始逐章手抄(详见第 12 章章末专栏)了。
