【问题标题】:loading external scala scripts into a scala file将外部 scala 脚本加载到 scala 文件中
【发布时间】:2020-02-20 20:41:49
【问题描述】:

我最初在 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);

}

我得到的错误是

对象不是包添加器的成员 对象不是包生成器的成员

【问题讨论】:

    标签: scala package python-import


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      相关资源
      最近更新 更多