9

我是 Scala 的新手。
我在 Ubuntu 12.04 上安装了 java、sbt 和 scala:

nazar_art@nazar-desctop:~$ sbt sbt-version
[warn] Alternative project directory .sbt (/home/nazar_art/.sbt) has been deprecated since sbt 0.12.0.
[warn]   Please use the standard location: /home/nazar_art/project
[info] Loading project definition from /home/nazar_art/.sbt
[info] Set current project to default-5b9232 (in build file:/home/nazar_art/)
[info] 0.12.4
nazar_art@nazar-desctop:~$ scala -version
Scala code runner version 2.10.2 -- Copyright 2002-2013, LAMP/EPFL
nazar_art@nazar-desctop:~$ java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

我为 Idea 安装了 scala 和 sbt 插件。

当我尝试第一个示例项目时,我看到下一个错误:

在下一行之后无法解析符号列表:

package example    
import common._

object Lists {      
  def sum(xs: List[Int]): Int = {   // <== here underline for List
    if (xs.isEmpty) 0
    else xs.head + sumList(xs.tail)
  }    
}

我无法弄清楚到底出了什么问题?IDEA 建议我导入java.util.List- 但这个类没有任何isEmpthy()方法。
有什么建议吗?

  • 如何解决这个麻烦?

更新:

  • 我重新安装了新版本的IntelliJ IDEA 13 社区版 而不是 #12。在/usr/local/Idea.
  • 删除了 sbt - sudo apt-get purge sbt。并重新安装此脚本
  • 我去了/MyProjectDirectory/project/并创建了带有内容的“plugin.sbt”:

    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")

  • 在此之后,我从我的项目目录中键入sbt gen-idea。它为 Idea 重建项目。

  • 并用想法问候窗口(Open Paroject)打开了这个项目。当然,安装sbtscala插件。

应该足够了,但它再次显示:

Cannot resolve symbol List

并建议 import import scala.collection.immutable.List。但这没有帮助。它一直用红线下划线。 在此处输入图像描述

4

3 回答 3

6

对于任何有同样问题的人,首先在 Idea 中尝试以下操作:

文件 -> 使缓存无效 -> 无效并重新启动

于 2015-01-14T12:20:30.543 回答
6

如果您的 IDEA 插件没有看到 scala 类,请转到 File -> Project Structure 并检查以下内容:

  1. 确保将 Scala Facet 添加到您的应用程序中。转到 Facets 选项卡并检查是否在此处列出了 Scala facet。如果没有,则需要添加并配置它。然后确保 Scala Facet 列在所有需要 Scala 的模块下。

  2. 确保 Scala Facet 使用正确版本的 scala 库(如果找不到,Idea 会将其标记为红色)。

  3. 确保 scala-library.jar 在使用 Scala 的模块的依赖项列表中。检查路径是否正常。

于 2013-09-23T13:50:08.820 回答
0

我想这是IDEA的问题。如果您在Scala IDE中打开同一个项目,您可以快速验证这一点。

您也可以在命令行中尝试:

[m:~/Scala/Hello]$ scala
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_51).
Type in expressions to have them evaluated.
Type :help for more information.

scala> var l = List()
l: List[Nothing] = List()
于 2013-09-23T13:46:19.087 回答