如何将Scala脚本中的MyUtils对象移至外部文件并调用其方法?
拆分Scala脚本中的工具对象并保持调用能力
下面分两种文件类型给出具体操作步骤:
一、移至普通Scala源文件(MyUtils.scala)
- 创建MyUtils.scala文件,写入原MyUtils对象的代码:
object MyUtils { def sayHello() = println("Hello") }
- 修改MyScript.scala,移除原文件中的MyUtils定义,保留主入口逻辑:
//> using scala "3" @main def main(): Unit = MyUtils.sayHello()
- 运行脚本:确保两个文件在同一目录下,直接执行命令:
scala MyScript.scala
scala-cli(当前的scala命令)会自动扫描同一目录下的所有.scala源文件,识别依赖关系并完成编译运行。
二、移至Scala脚本文件(MyUtils.sc)
如果选择用.sc格式的脚本文件,需要通过导入语句关联两个文件:
- 创建MyUtils.sc文件,可以有两种写法:
- 写法一(保留原对象结构):
object MyUtils { def sayHello() = println("Hello") }- 写法二(直接定义顶层方法,更简洁):
def sayHello() = println("Hello") - 修改MyScript.scala,添加导入语句后调用方法:
- 对应写法一的导入:
//> using scala "3" import $file.MyUtils import MyUtils.MyUtils._ @main def main(): Unit = sayHello()- 对应写法二的导入:
//> using scala "3" import $file.MyUtils import MyUtils._ @main def main(): Unit = sayHello() - 运行脚本:同样确保文件在同一目录,执行命令:
scala MyScript.scala
内容的提问来源于stack exchange,提问作者Wallace
相关产品推荐
相关产品推荐

