2016-09-25 110 views
0

我正在使用Chiusano的Scala函数式编程。在涉及功能性数据结构的第3章中,他提供了示例代码来演示清单3.1单链表的概念:无法在Intellij Scala中导入对象

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: _*)) 
} 

我命名此文件“listing.sc”,并在“数据结构”救了它包/ SRC /主/阶,按照所附目录结构中所示:

Directory structure

我想导入的列表对象到一个不同的文件名为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 有人可以指出我的方向来解决这个问题吗?

非常感谢

回答

4

.sc文件是工作文件至极是用于快速评估和测试Scala代码的构造。

工作表源不能用作scala源代码。如果你想使用其他类或工作表中的代码,你应该改变文件扩展名为.scala

+0

谢谢Sascha,这帮助了很多 – beginner