2017-07-20 59 views

回答

1

您可以使用scala -iscala -I加载初始化文件:

scala -help 
-i <file> preload <file> before starting the repl 
-I <file> preload <file>, enforcing line-by-line interpretation 
... 

,因此您可以创建自定义,当文件开始,像创建init.scala

val x = "Hello" 
val y = "World" 

和启动scala -i init.scala

Welcome to Scala 2.12.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_71). 
Type in expressions for evaluation. Or try :help. 

scala> y 
res0: String = Hello 

scala> x 
res1: String = World 

以及约scala 2.10scala 2.11的区别,应该没有区别。

+0

谢谢@chengpohi,有没有可以使用的scala api?我想在运行时创建一些对象,并将此对象注入到我的Scala代码中。 – zjffdu

+0

嗨@zjffdu,上面的方式创建一个init文件,当启动** scala repl **时它会自动加载** init文件**变量。如果你想在** repl runtime **中加载这个文件,你可以在启动你的repl后使用':load init.scala'。 – chengpohi

+0

如果你不想创建一个中间文件,你也可以这样做'(echo'val foo =“bar”'; cat - )| scala' – Dima

0

我的解决办法是简单地定义~/.bashrc别名:

alias sc="scala -i ~/.scalarc" 

我经常使用UUID对象从java.util包,以便它是有道理的,我预定义这样导入:

〜/ .scalarc

import java.util.UUID 
import scala.util.{Try, Success, Failure} 
import scala.util.{Either, Left, Right}