日历

September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

Reply To: 数据是什么?

Home Forums 《冒号课堂》讨论区 数据是什么? Reply To: 数据是什么?

#1210
hui
Keymaster

>>数据本身只是一个符号,它的特征是由其相关的一系列操作(包括构造和使用两类)所体现的

这种理解是正确的。之所以说数据是抽象的,是因为我们不关心其内部的具体结构表示(representation),只关心它是如何被创建、如何被使用的。也就是说,数据应当被当作一个黑箱来使用,任何超过其定义的使用方式都是侵犯其隐私、破坏其抽象的行为。

不过,上述“符号”二字或许改为“对象”(广义的对象,并非OOP中狭义的对象)更贴切些,因为前者容易让人把数据与指代它的变量混为一谈。事实上,在你参考的文章中也是使用“data object”的字眼。

如果以这种方式来理解数据,那么就很容易理解“函数也是数据”的思想了。在SICP中讲述的Scheme语言正体现了这种函数式风格。

在此基础上,(抽象)数据类型的概念也非常自然了。ADT关心的是通过接口定义在一类数据上的行为,而不是它们的内部数据结构。

 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)