在Scala REPL中设置包

6
在Scala REPL中是否有一种方式来设置“活动”的包作用域?比如我有一个名为com.package的包和一个class A,我希望能够键入new A()而不是new com.package.A(),而不必显式地执行import com.package.A。该包中可能还有其他我感兴趣的类,我不想通过执行import com.package._来污染我的REPL全局命名空间。

更好的方法是,我希望能够定义A类而无需输入其完全限定名称。就像这样:

package com.package // do this once

class A
class B

val a = new A()
val b = new B()

我知道有一个 :paste -raw 命令,但这需要我为每个代码块键入 package com.package;我真正想要的是一个有状态的命令来更改“当前工作包”,如果你愿意。

那么,我猜https://dev59.com/MnbZa4cB1Zd3GeqPDj9F#18510229也不会有帮助吗? - VonC
1
目前还不支持这个,因为包实际上在 REPL 的内部中使用(在 REPL 中定义的类实际上并不属于根包),但这将是一个有趣的功能请求... - gourlaysama
@VonC:不,这样做不能像我问的那样定义没有完全限定名称的新类。 - gsimard
Ditto @gourlaysama 这种情况是为了测试具有包内访问权限的现有类。 - som-snytt
1个回答

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接