我可以在 Scala 中一次从多个包导入吗?
在特定项目中的 Scala 文件的开头,我经常有这样的行:
package com.mycompany
package subproject
import common._
import uiutils._
import databinding._
import modeling._
有没有办法创建一个对象 ProjectImports
(或包对象)来“预导入”所有这些导入,以便然后我可以简单地
import ProjectImports._
在我的每个其他项目文件中写入而不是整个列表吗?
这是否与 Predef
中使用 scala.`package`
导入 scala
包的方式有关?
At the beginning of my Scala files in a particular project, I often have lines like these:
package com.mycompany
package subproject
import common._
import uiutils._
import databinding._
import modeling._
Is there a way to create an object ProjectImports
(or package object) that “preimports” all of these imports such that I can then simply write
import ProjectImports._
instead of the whole list, in each of my other project files?
Is this related to the way the scala
package is imported in Predef
with scala.`package`
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您需要的所有导入都是某些特征的成员,您可以轻松做到这一点。如果您有多个带有函数、内部类等的特征,您可以创建从所有这些特征继承的对象。因此,他们的所有内容都可以通过简单的
import MyObject._
导入。以这种方式导入类变得有点棘手 - 您必须为每个类创建一个类型成员。有关此技术的更多示例,请参阅 Casbah 导入对象和Scalaz scalaz 项目中的对象。
You can do it easily if all imports you needed are members of some traits. If you have several traits with functions, inner classes etc. you can create object inherited from all of them. So all their stuff can be imported with simple
import MyObject._
. Importing class in this way became a bit tricky - you have to create a type member for each class.For more examples of this technique see Casbah Imports object and Scalaz object in scalaz project.