2017-09-08 25 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

相關問題