在创建struct时在Racket中命名struct field id

时间:2014-06-10 07:26:51

标签: struct racket

我正在学习球拍,想知道在Racket中是否可以开箱即用。当我创建一个类的实例时,我使用以下语法:

(new Client% [name "John"]
             [age  30])

我喜欢在创建类的实例时需要命名字段id的事实。在创建结构时是否存在等价物。我扫描了Racket文档,但在创建结构时找不到有关命名字段id的任何内容。

TIA。

1 个答案:

答案 0 :(得分:1)

如果查看documentation,您会发现struct为您创建了一个构造函数,它将结构实例的初始值作为位置参数。 AFAIK没有内置支持"关键字" -like构造函数。

话虽如此,你总能做到像

这样的事情
(struct client (name age))
(struct client (name age) #:transparent)
(define (new-client #:name n #:age a)
  (client n a))
(new-client #:age 20 #:name "me")

通过关键词感觉获得通常的功能。