是Scala的通配符进口坏相对于增量编译?(Is wildcard import bad in Sc

2019-07-30 05:18发布

在Scala中,这样做不好,从疗效和增量编译器速度的点(SBT,在Eclipse中的IntelliJ SBT),使用通配符的进口? 是否这些增量编译器决定如何在变化的情况下重新编译的方式产生不利影响?

举例来说,如果一个新的类X ,我只需要导入类AB (而不是C从包) pack ,我能得到一个点球写的:

import pack._

不是吗?

import pack.{ A, B }

假设AB对不依赖C ,将X与通配符进口,而不是与更具体进口时重新编译C变化,或将依赖追踪系统足够聪明,意识到C不使用X尽管通配符进口?

Answer 1:

有一个微小的影响,但你可能不会注意到它。 其影响是当有以符号参考“富”的编译器必须解决“富”到一个完全合格的名称。 它在哪里可以寻找“foo”的范围是由通配符进口的影响。 但是,这一切都在内存中完成,你,除非你有一包东西发疯似的数千个类几乎可以肯定不会注意到解析速度如此微小的差异。

除此之外,没有任何影响。 如果您导入pack._和你不依赖于改变pack._一些任意类,那么你的文件将不必重新编译。



文章来源: Is wildcard import bad in Scala with respect to incremental compilation?