我可以在 Scala 中一次从多个包导入吗?

发布于 2024-11-02 20:29:45 字数 432 浏览 0 评论 0原文

在特定项目中的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

并安 2024-11-09 20:29:45

如果您需要的所有导入都是某些特征的成员,您可以轻松做到这一点。如果您有多个带有函数、内部类等的特征,您可以创建从所有这些特征继承的对象。因此,他们的所有内容都可以通过简单的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文