6

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ファイルとは何ですか?

4

1 に答える 1

10

パッチ メカニズムは、コア ライブラリ機能のさまざまな実装を提供するために、内部で使用されます (エンド ユーザーではなく、内部でのみ使用できます)。

以下の数学ライブラリの場合、 のプラットフォームに依存しないライブラリ ソースでは、lib/mathこれらのメソッドが として宣言されていexternalます。 externalメソッドは、パッチ ファイルから実装を取得します。の VM には、VMの実装を提供するパッチ ファイルがあり、 のコンパイラは 、実装を提供 するパッチ ファイルがあります。runtime/lib/math_patch.dartdart2jslib/compiler/implementation/lib/math_patch.dartdart2js

キーワードはアナライザーによって理解され、このexternalようにすることで、共有部分のみが SDK に存在し、ツールによって理解されるようになります。これは、SDK が と の代わりに を持つことができることを意味します。lib/mathこれ により、SDK がよりクリーンで理解しやすくなります。lib/math/runtimelib/math/dart2js

于 2012-10-12T06:02:14.417 に答える