在透明结构的下方?

时间:2014-02-24 17:13:40

标签: struct racket

我注意到Racket中的结构默认不透明。这对我来说似乎很奇怪,因为在我(有限)的经历中,当你想要看到某些东西的价值时,你想查看它的内容!具体来说,我指的是在定义结构时使用#:transparent关键字/机制。

默认情况下,为什么Racket的结构是不透明的?我唯一的猜测是,如果您正在为某些人显示或评估一个非常大的结构,它们会阻止向控制台显示太多内容原因。

1 个答案:

答案 0 :(得分:6)

docs来看,似乎默认情况下结构是不透明的,以鼓励更多的模块化程序。当提供透明结构时,它们会自动泄漏其内部表示。

  

默认情况下,结构类型是不透明的,因为不透明的结构实例提供了更多的封装保证。也就是说,库可以使用不透明结构来封装数据,除了库允许的情况外,库的客户端不能操作结构中的数据。