如何对项目中的所有文件使用自定义predef

时间:2015-09-25 18:37:01

标签: scala import

我想影响一些Predef成员,并为他们介绍我自己的实现。如何通知编译器应该导入my.own.Predef._而不是scala.Predef._?

1 个答案:

答案 0 :(得分:4)

我认为这样做的一种方法是通过链式包条款。

如果my/own/package.scala处的文件有,例如:

package my
package object own {
  type ISeq[+A] = IndexedSeq[A]
  val ISeq = IndexedSeq
}

然后,包my.ownmy.own子包中的任何文件都会自动导入ISeq,就好像它来自Predef IF 您可以从

更改文件顶部的包声明
package my.own.foo

package my.own
package foo

后一种形式称为chained package clause

This article(使用链式包来更改Seq以使用不可变接口)似乎表明您可以用scala.Predef这种方式隐藏成员。