2012-09-17 37 views
2

在Coq证明助手中 - 也具有隐式转换 - 可以使用SearchAbout T命令搜索隐式转换,该命令将返回所有类型为T的事物(其中包括转换为或来自T)。在Scala中查找适用的隐式转换

有没有一种方法可以找到Scala程序员的所有类型转换?请注意,转换可能在定义源或目标类型的项目之外定义。

+0

你想在运行时执行这样的搜索吗? –

+0

@ om-nom-nom不,只是在例如蚀。 –

回答

1

要只是快速查看是否转换在两个参考类型S和T之间的电流范围存在,只要输入

((null:S):T) 

,看看它是否编译。使用Eclipse Scala IDE> = 2.1M2,如果隐式突出显示在首选项中启用,您可以看到调用了哪个转换。

当然,这需要您猜测两种类型(但您可能已经清楚了解要转换的内容和来自哪个类型),并且它要求转换已经在范围内。

+2

你也可以用':implicits [-v]'在scala REPL中列出范围中的所有implicits(例如,当你执行'console'命令时) –