我的第一个scala程序HelloWorld.scala位于~/home/Jacobian/Projects/core/scala/
文件夹中。现在我想测试包的概念,看看如何导入/使用它们。这是我的代码:
package Projects.core.scala
class HelloWorld{
private[scala] var greeting: String = "Hello from package"
}
就是这样。正如您所看到的,我打电话给我的包Projects.core.scala
只是为了反映我在/...very_long_path/Projects/core/scala/
的某个地方。我不确定我做错了什么,但问题是,当我用$ scalac HelloWorld.scala
编译我的程序时,我收到一条错误消息:
错误:' {'预期但是&#39 ;;'结果
这是一个有趣的错误消息,因为我的代码中没有';'
。如果有人能够表明我做错了什么,那就太好了。但它会更有用,如果有人也可以分享如何导入这个类HelloWorld包装在一些任意包(不必与文件夹结构兼容)。 (PS。我正在阅读有关Scala的Horstman书籍,但我无法弄清楚当涉及到真实世界的程序时我能做些什么而不能抽象出易于理解的概念)
完整错误消息:
HelloWorld.scala:9:错误:' {'预期但是&#39 ;;'结果
类HelloWorld {
^发现一个错误
当没有parantheses并且我添加
时,会弹出此错误消息package Projects.core.scala {
class HelloWorld { ...
然后错误就消失了。
导入问题
现在我已经用{{}}包裹了class HelloWorld
并编译了程序,我看到出现了一些文件夹结构。所以,现在似乎导入类很容易,这就是我尝试这样做的方法:
import Projects.core.scala.HelloWorld
object Test{
def main(args: Array[String]){
println("Hello from Test")
}
}
Test.scala
位于HelloWorld.scala
所在的文件夹中,在这个文件夹中,我看到了Projects / core / scala / HelloWorld.class和其他编译文件。但是,当我尝试现在编译Test.scala
时,我收到另一条错误消息:
Test.scala:3:找不到错误:对象项目
这又是非常有趣的 - 当我想要它导入一个类时,为什么它试图找到一个对象?为什么不进口这门课呢?应该发生什么其他木头魔法?
文件树结构
HelloWorld.scala
Test.scala
Projects/core/scala/HelloWorld.class
这就是Test.scala
的样子:
import Projects.core.scala.HelloWorld._
object Test{
def main(args: Array[String]){
println("Hello from test")
}
}
我还尝试了import Projects.core.scala.HelloWorld
并导入Projects.core.scala._
,但这些都没有效果。我总是收到一条错误消息:
错误:找不到:对象项目
修改
我将项目/ core / scala /的完整路径添加到CLASSPATH,但它没有帮助。但是,编译器无法导入我的自定义类。我发现它真的很令人沮丧,我知道Python
或其他语言,我需要花几秒时间才能完成这个技巧,在这里我必须花费数小时才能完成这样一个悲惨的任务 - 只需要导入一个类。天!