无法在Intellij Scala中导入对象

时间:2016-09-25 08:16:38

标签: scala intellij-idea functional-programming

我正在通过Chiusano的Scala功能编程工作。在与功能数据结构相关的第3章中,他提供了示例代码来演示清单3.1中的单链接列表的概念:

package datastructures
sealed trait List[+A]

case object Nil extends List[Nothing]
case class Cons[+A](head: A, tail: List[A]) extends List[A]

object List {
  def sum(ints: List[Int]): Int = ints match {
    case Nil => 0
    case Cons(x, xs) => x + sum(xs)
  }

  def product(ds: List[Double]): Double = ds match {
    case Nil => 0
    case Cons(0.0, _) => 0.0
    case Cons(x, xs) => x * product(xs)
  }

  def apply[A](as: A* ): List[A] =
    if (as.isEmpty) Nil
    else Cons(as.head, apply(as.tail: _*))
}

我将此文件命名为&c; listing.sc'并将其保存在'数据结构'在/ src / main / scala中打包,根据显示的附加目录结构:

Directory structure

我正在尝试将List对象导入名为test.sc的其他文件中。我在下面有以下代码:

import datastructures.List

val ex1: List[Double] = Nil
val ex2: List[Int] = Cons(1, Nil)
val ex3: List[String] = Cons("a", Cons("b", Nil))

然而,这失败并出现错误:无法解析符号列表。我尝试过导入数据结构。但这并没有起作用。

Import error 有人能指出我朝着解决这个问题的方向发展吗?

非常感谢

1 个答案:

答案 0 :(得分:4)

.sc个文件是工作表文件,用于快速评估和测试scala代码。

工作表源不能用作scala源代码。如果要在其他类或工作表中使用代码,则应将文件扩展名更改为.scala