有沒有辦法在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'(雖然不知道你是否可以使用它作爲結構體)。 –