导入Dart库时使用“显示”是否除了意图和编译器速度之外还有其他好处?

Dav*_*tik 4 dart

说我有:

import 'dart:async' show Timer;
import 'dart:math' show Random;
Run Code Online (Sandbox Code Playgroud)

我认为这样做的好处是您可以明确地设定自己的意图,因此,如果以后尝试使用其他内容,则必须明确地决定您是否愿意。

我想另一个好处是编译器速度(dart2js),因为即使有摇晃的树,它也可以更快地知道所依赖的内容。

它对运行时的速度有好处吗?其他福利?

Dan*_*eny 5

我可以想到一些:

  1. 它还减少了命名冲突;如果您Foo因为不需要而没有从库中导入该类,则不需要完全限定Foo您可能正在使用的任何其他类。
  2. 减少“工作区域”中的混乱情况,避免仅通过“使用那里的内容”而“偶然地”增加与库的耦合(这只会阻止您引用其他类/函数,不会阻止您调用返回的东西他们)。
  3. 与(2)相似,但是智能感知列表会更短,这可能有助于您专注于自己关心的位。

当然,每个开发人员的价值可能会因开发人员而异。

编辑:重新阅读您的文章,您已经提到2;但是,由于摇晃,您的编译速度不太准确。仅仅因为您没有show一个类,并不意味着您不使用它-它可以由您使用的代码在内部使用,或从函数返回给您。