是否可以让scala宏约束方法的类型?

时间:2014-04-14 21:00:50

标签: scala macros scala-macros

基本上我想象以下内容。

trait A[T] {
  def get(idx: Int): U
}

宏出现在使用中。理想情况下,我希望能够使用get(0),get(1)作为宏,其中将知道正确的返回类型。这可能吗?

1 个答案:

答案 0 :(得分:1)

是。只需将返回类型指定为Any,然后制作宏白框(http://docs.scala-lang.org/overviews/macros/blackbox-whitebox.html#blackbox_and_whitebox_macros)即可。 Whitebox宏扩展假定它们的实际类型,而不是宏定义的声明类型。