gpt4 book ai didi

struct - 可选结构字段

转载 作者:行者123 更新时间:2023-12-04 23:22:02 24 4
gpt4 key购买 nike

我搜索了documentation对于 Racket(语言;非类型化),并且无法确定是否可以为非可变结构提供可选参数。我希望能够做到:

(struct q-a-website (name interest-value #syntax? some-optional-field))
... (q-a-website "stack-overflow" 42 "My name is Jon Skeet") ...
... (q-a-website "quora" -inf.0) ...

在这个伪示例中, #syntax?只是一个占位符,我怀疑可能存在一些特殊语法以使以下字段成为可选。有没有办法让你日常的、不可变的、普通的结构在基础 Racket 中具有可选参数?

澄清:如果创建的结构没有可选参数,则使用必须在创建时提供的默认值填充它。在这种情况下,该信息必须包含在(可能命名不佳) #syntax? 中。堵塞。

(注意:我对在此问题中包含 struct 标记持保留态度,因为它提到了 Racket 不属于的 C 语言系列......)

最佳答案

我认为做你想做的最简单的方法是创建一个具有可选参数的“构造函数”,如下所示:

#lang racket

(struct q-a-website (name interest-value optional-field))

;; make a q-a-website
(define (make-q-a-website name interest-value [optional-field #f])
(q-a-website name interest-value optional-field))

;; try making it with and without the optional argument:
(make-q-a-website "stack-overflow" 42 "My name is Jon Skeet")
(make-q-a-website "quora" -inf.0)

Racket 也有一个成熟的职业系统,拥有...几乎所有你能想象到的东西。但是,对于这种用途,我想我会这样做。

关于struct - 可选结构字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920102/

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