加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

相对于增量编译,Scala中的通配符导入是否不好?

发布时间:2020-12-16 09:31:36 所属栏目:安全 来源:网络整理
导读:在Scala中,从增量编译器(sbt,Eclipse,IntelliJ的sbt)的功效和速度的角度来看,是否使用通配符导入?是否会对这些增量式编译器决定在更改情况下重新编译的方式产生不利影响? 例如,如果对于一个新的类X,我只需要从包包中导入A类和B类(而不是C类),那么我
在Scala中,从增量编译器(sbt,Eclipse,IntelliJ的sbt)的功效和速度的角度来看,是否使用通配符导入?是否会对这些增量式编译器决定在更改情况下重新编译的方式产生不利影响?

例如,如果对于一个新的类X,我只需要从包包中导入A类和B类(而不是C类),那么我写一个这样的处罚:

import pack._

而不是这个?

import pack.{ A,B }

假设A和B对C没有依赖性,则X将通过通配符导入重新编译,而不是在C更改时使用更具体的导入,或者依赖关系跟踪系统是否足够聪明以意识到C不会被X使用,尽管通配符进口?

解决方法

有一个微小的影响,但你可能不会注意到。影响是,当引用符号“Foo”时,编译器必须将“Foo”解析为完全限定名称。可以查找“Foo”的范围受到通配符导入的影响。但是这一切都在记忆中完成,你几乎肯定不会注意到分辨率速度的这样微小的差异,除非你有一些疯狂的东西,像一个包中的数千个类。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读