是什么在DART patch关键字吗?(What does the patch keyword in

2019-09-24 00:26发布

有人可以解释patch关键字做什么? 例如,在math_patch.dart我见

patch num pow(num x, num exponent) => MathNatives.pow(x, exponent);
patch double atan2(num a, num b) => MathNatives.atan2(a, b);
patch double sin(num x) => MathNatives.sin(x);
patch double cos(num x) => MathNatives.cos(x);

这是什么意思? 什么是_patch.dart文件?

Answer 1:

修补机制在内部使用(并且只能在内部,不向最终用户)提供的核心库功能不同的实现。

对于你有下面的数学库,在平台独立的库源lib/math声明这些方法为externalexternal方法得到一个补丁文件的实施。 有一个在虚拟机中的补丁文件runtime/lib/math_patch.dart ,它提供了VM的执行情况和存在的补丁文件dart2js在编译器lib/compiler/implementation/lib/math_patch.dart ,它提供了dart2js实施。

external关键字由分析器理解并做这种方式只允许共享的部分是在SDK和工具来理解。 这意味着SDK可以lib/math ,而不必lib/math/runtimelib/math/dart2js ,这使得SDK更清洁和更容易理解。



文章来源: What does the patch keyword in Dart do?
标签: dart