0

在本文档中:

http://docs.scala-lang.org/overviews/reflection/environment-universes-mirrors.html

Scala 反射宇宙被描述为有 2 个实现:1 个用于运行时(在 scala.reflect.runtime 下)和 1 个用于编译时(在 scala.reflect.macro 下)。

但是,我只能通过以下方式访问运行时 Universe:

scala.reflect.runtime.universe

编译时 Universe 包下没有具体的实现。实现和调用它的能力是否故意隐藏,实现由 scala 编译器硬编码?如果是这样,那么在使用 Scala 反射之前强制指定一个 Universe 的原因是什么?

非常感谢您的任何见解。

4

1 回答 1

0

在使用 Scala 反射之前强制指定宇宙的原因是什么?

因为 Scala 中的宏依赖于上下文,并且每个宏的 Universe 导入都在上下文中传递。

于 2016-06-05T04:10:02.170 回答