【问题标题】:Naming struct field ids in Racket when creating struct创建结构时在 Racket 中命名结构字段 id
【发布时间】:2014-06-10 07:26:51
【问题描述】:

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

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

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

TIA。

【问题讨论】:

    标签: struct racket


    【解决方案1】:

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

    话虽如此,你总是可以做类似的事情

    (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")
    

    获得具有关键字感觉的常用功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      相关资源
      最近更新 更多