已移除:Scala 2 巨集
前一個實驗性巨集系統已移除。
取而代之的是一個更乾淨、更受限制的系統,基於兩個互補的概念:inline
和 '{ ... }
/${ ... }
程式碼產生。'{ ... }
延遲編譯程式碼並產生包含程式碼的物件,而 ${ ... }
評估產生程式碼的表達式,並將其插入周圍的 ${ ... }
。在此設定中,標記為包含 ${ ... }
的內嵌定義是一個巨集,${ ... }
內部的程式碼在編譯時執行,並產生 '{ ... }
形式的程式碼。此外,程式碼的內容可以使用更複雜的反射 API 作為 '{ ... }
/${ ... }
架構的延伸來檢查和建立。