基本上我想象以下内容。
trait A[T] {
def get(idx: Int): U
}
宏出现在使用中。理想情况下,我希望能够使用get(0),get(1)作为宏,其中将知道正确的返回类型。这可能吗?
答案 0 :(得分:1)
是。只需将返回类型指定为Any
,然后制作宏白框(http://docs.scala-lang.org/overviews/macros/blackbox-whitebox.html#blackbox_and_whitebox_macros)即可。 Whitebox宏扩展假定它们的实际类型,而不是宏定义的声明类型。