巨集

使用案例

語言
此文件頁面特定於 Scala 2 中發布的功能,這些功能已在 Scala 3 中移除或由替代方案取代。除非另有說明,此頁面中的所有程式碼範例都假設您使用的是 Scala 2。

實驗性質

Eugene Burmako

自從 Scala 2.10 將其發布為實驗性功能以來,巨集就將以前不可能或複雜到難以禁止的事物帶到了可能的領域。Scala 的商業和研究使用者都使用巨集將他們的構想付諸實踐。在 EPFL,我們利用巨集來推動我們的研究。Lightbend 也在許多專案中採用巨集。巨集在社群中也很受歡迎,而且已經產生許多有趣的應用程式。

最近的演講 “巨集有什麼好處?” 描述並系統化了 Scala 2.10 使用者發現的巨集用途。演講的論點是巨集適用於程式碼產生、靜態檢查和 DSL,並以許多來自研究和產業的範例說明。

我們也在 Scala’13 工作坊中發表了一篇論文,“Scala 巨集:讓我們的威力結合!”,從更學術的角度探討 Scala 2.10 中巨集技術的現況。在論文中,我們展示了 Scala 豐富的語法和靜態類型如何與巨集產生協同效應,並探討巨集如何啟用使用既有語言功能的新穎且獨特的方式。

此頁面的貢獻者