Scala和隐式导入



首先,我必须告诉我对Scala的经验并不是我最近读了一些我不了解其工作方式的代码。

此示例代码使用Future,通常它们都需要scala.concurrent.ExecutionContext.Implicits.global,但在项目代码中的任何地方都没有声明。当我尝试在我的Intellij项目中使用Future时,有人抱怨我必须在某个地方声明ExecutionContext ...

import scala.collection.JavaConverters._相同。示例代码一直在使用asScala,而无需导入转换器...

是否有一种方法可以在Scala中配置宽阔的项目项目(或者可能是Intellij中的窍门)...

我不认为这与Intellij相关。

一种可能的解释是,您所指的代码在某些全球导入的范围(例如package object)中声明为这些隐含的代码。在这种情况下,包装中的任何成员都会看到此对象中声明的隐式。

在Intellij中,您可以使用快捷方式Ctrl+Shift+Alt++(隐性提示)查找代码中使用了哪些隐含的隐含物(以及它们所缺少的隐含)(它们以浅灰色为单位,您可以使用,您可以可以CTRL+click上)。请参阅:https://www.jetbrains.com/help/idea/edit-scala-code.html#scala_hints

因此,如果您继续使用隐式提示激活的Intellij中不了解的代码,您将能够查看隐式定义的位置。

对于您的情况:尝试在文件中使用import scala.concurrent.ExecutionContext.Implicits.global,您需要隐式ExecutionContext

是否有一种方法可以在Scala中配置宽阔的项目项目(或者可能是Intellij中的诀窍)...

不,您必须在范围中的某个地方定义隐含的内容或导入它们。(伴随对象也适用)。阅读此信息以进行更详细的说明:https://docs.scala-lang.org/tour/implitic-parameters.html

相关内容

  • 没有找到相关文章

最新更新