我最初在2个单独的scala工作表上制作了具有许多功能的脚本。我让它们工作,现在想通过将它们导入并使用它们到第三个文件中,将这些单独的脚本捆绑在一起。从我所读的内容中,您不能简单地导入外部脚本,您必须首先将它们放入一个类中并将它们放入一个程序包中。所以我尝试了一下,但仍然无法导入
我知道这对本网站来说可能有点基础,但我一直在努力寻找大量的scala文档。
我认为我的问题可能来自对软件包工作方式的误解。下面的图片可能会有所帮助。
adder.scala
package adder
class adder {
def add_to_this(AA:Int):Int={
var BB = AA + 1;
return BB
}
}
build.scala
package builder
class build {
def make_numbers(){
var a = 0;
var b = 0;}
}
main.sc
import adder
import builder
object main {
adder.adder.add_to_this(10);
}
我得到的错误是
对象不是包添加程序的成员 对象不是软件包生成器的成员
答案 0 :(得分:0)
scala中的类与Java中的类略有不同。如果您需要单身人士之类的东西,则可以使用object
代替类,即:
package com.example
object Main extends App {
object Hide{
object Adder{
def addToThis(AA:Int):Int = AA + 1
}
}
object Example{
import com.example.Main.Hide.Adder
def run(): Unit = println(Adder.addToThis(10))
}
Example.run()
}
考虑包/模块之类的对象,它们也是常规值。您可以通过对象的完整路径导入对象,即com.example.Main.Hide.Adder
,也可以通过添加.{addToThis}
来导入对象的内容,或者通过在对象之后添加._
来从对象中导入任何内容。
请注意,类,特征和案例类不能用作对象,除非有实例,否则您将无法对其进行任何操作-没有static
修饰符。