繁体   English   中英

Scala-IDE或Scala奇怪的导入行为

[英]Scala-IDE or Scala strange import behavior

我正在做一个小型Scala项目。 我有“进口”以下问题:

如果在我的文件之一的顶部,使用以下命令导入了两件事:

import main.Main._
import main.game.Game
       ^^^^

它在带下划线的“ main”字样处给我以下错误消息:“对象Main中的方法main缺少参数;如果要将它视为部分应用的函数,请在此方法后加上'_'”,这很奇怪,尤其是这只是一个导入语句。 而且自然不会发生实际的导入。 起初,我又想到了分号推理的怪癖,但事实并非如此。 如果我交换两行并这样写:

import main.game.Game
import main.Main._

那么一切都很好。

有人可以阐明这一点吗? Scala有什么特别之处吗?

大概您在object Main有一个main方法。 因此,在import main.Main._之后import main.Main._ main引用此方法而不是main包。 您可以通过几种方式避免它:

  1. 根据问题更改导入顺序。
  2. 不要导入main方法,正如Daniel C. Sobral的答案所暗示的那样。
  3. 明确地说,您需要顶级main软件包:

     import _root_.main.game.Game 

在大多数情况下,遵循正常的Java程序包命名约定应避免出现此问题,因为您不太可能拥有名为comorg成员(或子程序包)(尽管net可能是一个问题)。

您在main.Main内部确实有一个名为main的方法,不是吗? 好了,自从您导入它以来,它现在已经用main遮盖了该 您可以尝试执行以下操作以确认:

import main.Main.{main => _, _}
import main.game.Game

这将使main不被导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM