有没有办法在Racket中重载结构的构造函数,所以我可以使继承的参数为可选的?重载结构构造函数
就我而言,我想为我的应用程序定义一些自定义例外。 例如:
(struct exn:my-app exn())
(struct exn:my-app:illegal-access exn:my-app())
然而,实例化一个非法存取例外,我必须调用与来自EXN(消息和继续标记)继承了2个参数,这是相当麻烦的构造。
是否可以定义(对于exn:my-app及其所有后代)构造函数,这可以使这两个参数都是可选的?所以,我可以打电话或者:
(raise (exn:my-app:illegal-access))
(raise (exn:my-app:illegal-access "Message")) ?
感谢,
Scheme没有重载你正在考虑的那种,但它确实有可选参数,它确实有'case-lambda'(虽然不知道你是否可以使用它作为结构体)。 –