【问题标题】:Can I import from multiple packages all at once in Scala?我可以在 Scala 中一次从多个包中导入吗?
【发布时间】:2011-04-21 13:27:32
【问题描述】:

在特定项目的 Scala 文件的开头,我经常有这样的行:

package com.mycompany
package subproject

import common._
import uiutils._
import databinding._
import modeling._

有没有办法创建一个对象ProjectImports(或包对象)来“预导入”所有这些导入,这样我就可以简单地编写

import ProjectImports._

而不是整个列表,在我的每个其他项目文件中?

这是否与scala 包在Predefscala.`package` 中的导入方式有关?

【问题讨论】:

  • 我想补充一点,考虑到列出单独的包导入可以用于记录源文件的依赖关系,而 import ProjectImports._ 隐藏单独的依赖关系。

标签: scala import


【解决方案1】:

如果您需要的所有导入都是某些特征的成员,您可以轻松做到这一点。如果您有几个带有函数、内部类等的特征,您可以创建从所有这些特征继承的对象。所以他们所有的东西都可以用简单的import MyObject._ 导入。以这种方式导入类变得有点棘手 - 您必须为每个类创建一个类型成员。

有关此技术的更多示例,请参阅 scalaz 项目中的 Casbah Imports objectScalaz object

【讨论】:

  • 谢谢,在开发自己的库时,这看起来是个不错的技巧。你甚至可以在包对象中混合所有特征(然后我们只需要import scalaz._ 而不再需要第二个import Scalaz._。但是其他不遵循这种模式的库呢?
  • 我将您的答案标记为已接受,直到我们找到有关此问题的更多信息;现在看来我想在我的问题中做的事情不能按原样完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 2013-02-02
  • 1970-01-01
  • 2020-10-20
相关资源
最近更新 更多