我正在学习球拍,想知道在Racket中是否可以开箱即用。当我创建一个类的实例时,我使用以下语法:
(new Client% [name "John"]
[age 30])
我喜欢在创建类的实例时需要命名字段id的事实。在创建结构时是否存在等价物。我扫描了Racket文档,但在创建结构时找不到有关命名字段id的任何内容。
TIA。
答案 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")
通过关键词感觉获得通常的功能。