我是scala的新手。我创建了一个包含几个方法的scala对象。我试图从Scala REPL
调用该方法,但import
语句不起作用。
这是我尝试的代码(它位于default package
):
object Hello extends App {
def sum(xs: List[Int]): Int = 0;
def max(xs: List[Int]): Int = 0;
}
为了启动Scala REPL
,我打开了控制台,然后执行了以下操作:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\user>sbt
[info] Set current project to user (in build file:/C:/Users/user/)
> console
[info] Updating {file:/C:/Users/user/}user...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_2
2).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import Hello._
<console>:7: error: not found: value Hello
import Hello._
^
scala>
项目工作区和项目在E:/Work
中创建。即使我尝试导航到项目,然后按照上面的相同步骤进行操作,但它也会出现同样的错误。
请告诉我如何使此import
声明从Scala REPL
开始。
答案 0 :(得分:2)
有关项目结构,请参阅this page
你的目录树应该是
E:
|
`- Work
|
`- {PROJECT}
|
+- build.sbt
|
`- src
|
`- main
|
`- scala
|
`- Hello.scala
接下来导航到E:\Work\{Project}
,然后运行sbt
,然后console
并完成所有工作
请记住,您的REPL将引用在console
执行之前编译的类。
请注意,您的项目结构可能更简单,如
E:
|
`- Work
|
`- {PROJECT}
|
`- Hello.scala
但不建议这样做
答案 1 :(得分:0)
您需要编译您的项目
退出scala REPL,然后从shell提示符退出:
> sbt clean compile package
编译任务是对 sbt 的依赖,因此 sbt 与 sbt compile 相同,但是我没有在控制台输出中看到一行显示它编译了你的项目(它将以编译开头)
或者,如果您没有依赖项(看起来您没有),那么您可以直接将该代码粘贴到REPL会话中,让Scala REPL为您编译代码,如下所示:
scala> :paste
// paste your code in the REPL window
scala> ctrl-D