gpt4 book ai didi

racket - 透明结构与预制结构之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 04:56:58 25 4
gpt4 key购买 nike

顾名思义,定义结构时,我不了解使用#:transparent和使用#:prefab之间的区别。 reference提到预制涉及某种全局共享。

它们之间有什么区别?在哪种情况下我应该使用另一种方法?

最佳答案

要使结构类型透明,请在字段名称序列后使用#:transparent关键字:

(struct posn (x y)
#:transparent)

> (posn 1 2)
(posn 1 2)

透明结构类型的实例的打印效果类似于对构造函数的调用,从而显示了结构字段的值。透明结构类型还允许进行反射操作,例如struct?和struct-info,用于其实例。

尽管透明结构类型以显示其内容的方式进行打印,但是与数字,字符串,符号或列表的打印形式不同,该结构的打印形式不能用于表达式中以取回该结构。

预制(“预制”)结构类型是Racket打印机和表情读取器已知的内置类型。无限地存在许多此类类型,并且它们通过名称,字段计数,父类(super class)型和其他此类详细信息进行索引。预制结构的打印形式类似于矢量,但它以#而不是#开头,并且打印形式中的第一个元素是预制结构类型的名称。

最后,根据我的经验,我通常会在#:prefab中大部分时间使用#:transparent,而我通常会使用#:transparent。

关于racket - 透明结构与预制结构之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32098301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com