我有一個Scala(2.10)def宏,參數爲x。它的機身看起來是這樣的:匹配Scala宏中的泛型類型
if (x.actualType =:= typeOf[generic.Type[String]]) {
// branch 1: do something with x
}
else {
// branch 2: do something else
}
的generic.Type類本身的實現是不可訪問及其執行不能修改。現在,我想讓這個宏調用分支1,而不僅僅是爲generic.Type [String] s,而是generic.Type [T],其中T是任何類型。
有沒有規範的方法來實現這一目標?或者是使用AST手動執行的唯一選擇?
什麼是宏簽名? – Ashalynd 2014-09-05 15:26:54
它是def impl(c:Context)(x:c.Expr [Any]):c.Expr [Any] – fishlips 2014-09-05 15:56:06