如何在当前范围内 'discover' 键入 classes/implicit 值?
How can I 'discover' type classes/implicit values in the current scope?
我使用了一些 scala 的内置类型 类,并创建了一些我自己的类型。但是,目前我遇到的最大问题是:如何找到可用的 类 类型?虽然我写的大部分都是小而简单的,但很高兴知道是否已经存在可以实现我将要实现的东西!
那么,在某处是否有标准库中可用的所有类型 类 或隐式值的列表?
更好的是,是否有可能以某种方式(可能在 REPL 中)生成当前范围内可用的隐式值列表?
这是一份很好的工作IDE。
IntellijIDEA 14+
查看 Scala 插件 1 中的 Implicits analyser。4.x。用法示例:
def myMethod(implicit a: Int) = {
}
implicit val a: Int = 1
myMethod // click the myMethod and press Ctrl+Shift+P, the "Implicit Parameters" is shown
日食
Scala REPL
您可以像这样列出隐式:
:implicits -v
并像定义的那样调查它们的起源here:
import reflect.runtime.universe
val tree = universe.reify(1 to 4).tree
universe.showRaw(tree)
universe.show(tree)
我使用了一些 scala 的内置类型 类,并创建了一些我自己的类型。但是,目前我遇到的最大问题是:如何找到可用的 类 类型?虽然我写的大部分都是小而简单的,但很高兴知道是否已经存在可以实现我将要实现的东西!
那么,在某处是否有标准库中可用的所有类型 类 或隐式值的列表? 更好的是,是否有可能以某种方式(可能在 REPL 中)生成当前范围内可用的隐式值列表?
这是一份很好的工作IDE。
IntellijIDEA 14+
查看 Scala 插件 1 中的 Implicits analyser。4.x。用法示例:
def myMethod(implicit a: Int) = {
}
implicit val a: Int = 1
myMethod // click the myMethod and press Ctrl+Shift+P, the "Implicit Parameters" is shown
日食
Scala REPL
您可以像这样列出隐式:
:implicits -v
并像定义的那样调查它们的起源here:
import reflect.runtime.universe
val tree = universe.reify(1 to 4).tree
universe.showRaw(tree)
universe.show(tree)