自定義效果
定義自己的效果並通過函數簽名進行傳播。
自定義效果
自定義效果是語言故事的一部分,但它們更接近於目前可展示行為和仍在積極設計和實現中的更豐富處理者模型之間的分界。本頁直接記錄了這個分界。
安全的主張
- Sounio 在主動源樹中擁有專門的效果子系統。
- 公共契約應該強調在承諾先進處理者人體工學之前,明確地聲明和傳播效果。
- 自定義效果示例對於解釋模型很有用,但最深的執行語義應該仍然與當前的實現狀態進行交叉檢查。
模型級別的自定義效果草圖
effect Fail {
fn fail(msg: string) -> !
}
fn main() with Fail {
Fail.fail("demo")
}
實現表面
self-hosted/effects/types.sio是查找效果表示的對象。self-hosted/effects/handlers.sio和self-hosted/effects/checker.sio展示了自主實現如何處理處理者和檢查。self-hosted/check/effects.sio將語言面向的檢查工作與專門的效果子系統連接起來。
文檔立場
- 將自定義效果作為模型的一部分進行教學。
- 保守地教授處理者執行細節,僅在有具體實現警告的情況下。
- 如果您需要更強大的主張,請使用當前的固定點或針對實現進行針對性審計。