scala表达式的具体化是否适用于v2.9?

时间:2012-10-10 11:10:45

标签: scala expression reification

我正在玩scala提升,我偶然发现Scala似乎对lambda表达式有一些隐含的支持。

import scala.reflect.Code
import scala.reflect.Function
import scala.reflect.Select

object Test {
  trait Foo {
    def aMethod : String
  }

  val ast : Code[_] = (f:Foo) => f.aMethod 

  //now you can pattern match the AST 
  val Function(_, Select(_, symbol))= ast.tree
  val nameOfAMethod = symbol.name
  println(nameOfAMethod) //prints "aMethod"
}

ast将在右侧为lambda设置AST。

似乎不适用于文字,所以:

val ast : Code[_] = 42

不起作用。

但这样做:

val ast : Code[_] = () => 42

我似乎无法找到它的文档。似乎没有任何隐式转换处于活动状态。这是如何运作的?

0 个答案:

没有答案