Lin*_*air 5 scala sbt read-eval-print-loop
如何将包导入 Scala 的 REPL 中?我正在尝试导入这个名为 funsets 的包,它有一个名为“FunSets”的对象。我尝试了import funsets._等的几种变体import funsets._;,但它仍然没有导入包中的函数和对象。
一种方法是编译“scala 类”并将其放入classpath.
例子,
1)假设你有课funsets.FunSets.scala
package funsets
object FunSets {
def fun = "very fun"
}
Run Code Online (Sandbox Code Playgroud)
2)首先使用 编译类scalac。(如果您使用sbt则会sbt compile将编译的类放入target/文件夹中)
scalac FunSets.scala
Run Code Online (Sandbox Code Playgroud)
您将看到funsets创建的文件夹/包,
$ ls -l
total 16
-rw-r--r-- 1 updupd NA\Domain Users 63 Dec 18 11:05 FunSets.scala
drwxr-xr-x 4 updupd NA\Domain Users 136 Dec 18 11:06 funsets
Run Code Online (Sandbox Code Playgroud)
funsets3)然后在类路径中使用包启动REPL
$ scala -classpath .
Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_151).
Type in expressions for evaluation. Or try :help.
scala> import funsets._
import funsets._
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用sbt compile,请放入target/classes类路径中。
访问 Funsets 单例,
scala> FunSets.fun
res0: String = very fun
Run Code Online (Sandbox Code Playgroud)
另请阅读Scala REPL 无法导入包