2017-09-08 22 views
0

在“官方”斯卡拉REPL我可以做如何使Scala的菊石使用scala.util而不是ammonite.util作为默认的util?

scala> import util.Random 
scala> util.Random.nextInt 
res0: Int => -306696783 

但在菊-REPL我得到

@ import util.Random 
cmd3.sc:1: object Random is not a member of pack ammonite.util 
import util.Random 
    ^
Compilation Failed 

所以现在我必须使用scala.前缀,使其在菊的工作:

@ import scala.util.Random 
@ scala.util.Random.nextInt 
res1: Int = 503117434 

我一种新的Scala的,所以我不知道为什么会菊使用不同的util比(对我来说)“正式开通了l“util,所以如果有人能为此提供理由,我将不胜感激。

更具体地说,是否有任何方法可以使utilscala.util而不是ammonite.util

回答

0

这并不是说菊被更换不同util库正常斯卡拉一个,那就是,亚扪人命名空间都有它自己的util包,它具有特定于菊一大堆的方法。如果开发者为他的软件包选择了一个不同的名字,也许会更好,但这不是Ammonite特有的问题。这是你一直会遇到的事情。当名称空间发生冲突时,唯一的选择是完全限定您想要的名称空间的名称。所以你实际上做了一个很好的解决方案。你可以找到更多关于这个here

而且顺便说一句,因为是在菊包您可以在导入后这样做没有util.Random - 我测试,这是一个切割,并从我的终端粘贴:

@ Random.nextInt res1: Int = 1045964363

当你确实有方法名称的碰撞,你可以找到解决方案here

相关问题