我想以类似于bash表达式../abc
的方式从com.example.iop
导入com.example.abc
包。
在Scala中是否有可能实现这一点?我已经阅读了几篇文章,但它们没有涉及到我的情况。
更新:我发现了适用于简单用法的代码(我以前在某个项目中见过):
package com.example
package com.example.abc
import iop
你更新的包结构有一些解决方案的线索,但还不完全正确。你可以存在于多个包中,其中包括由第一个包语句定义的宽泛父级包 - 后续语句会细化树形结构。
package com.foo // we're in: com.foo
package bar // we're also in: com.foo.bar
package wibble // we're also in: com.foo.bar.wibble
import frobble._ // this could be com.foo.frobble or com.foo.bar.frobble or com.foo.bar.wibble.frobble
显然,如果您有多个同名的软件包,事情可能会变得混乱,但编译器会礼貌地要求您解决这个问题。
这是不可能的——就像在Java中一样。