将外部Scala脚本加载到Scala文件中

时间:2020-02-20 12:17:30

标签: scala package python-import

我最初在2个单独的scala工作表上制作了具有许多功能的脚本。我让它们工作,现在想通过将它们导入并使用它们到第三个文件中,将这些单独的脚本捆绑在一起。从我所读的内容中,您不能简单地导入外部脚本,您必须首先将它们放入一个类中并将它们放入一个程序包中。所以我尝试了一下,但仍然无法导入

我知道这对本网站来说可能有点基础,但我一直在努力寻找大量的scala文档。

我认为我的问题可能来自对软件包工作方式的误解。下面的图片可能会有所帮助。

my program example

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);

}

我得到的错误是

对象不是包添加程序的成员 对象不是软件包生成器的成员

1 个答案:

答案 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修饰符。