問題タブ [extension-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - Kotlin - Val は再割り当てできませんが、インデックスからアクセスすることで再割り当てできますか?
要素を変更しようとしているこれらの 2 つの関数があります。それらの1つはコンパイルされ、他のものは「valを再割り当てできません」と言います。次の機能の違いは何ですか? 一方がコンパイルされ、もう一方がコンパイルされないのはなぜですか?
コンパイルするもの
と言う方
Val を再割り当てできません
unit-testing - クラス内の拡張機能のテスト
型で拡張関数をテストしたい場合は、この型のインスタンスを作成し、関数を呼び出して戻り値を確認できます。しかし、クラス内で定義された拡張関数のテストについてはどうでしょうか?
foo()
クラスSubClass1
とのメソッドのロジックをどのようにテストしSubClass2
ますか? それは可能ですか?
デザインを変更してテストできることはわかっています。私には2つの可能性がありました:
拡張機能を使用しないでください。¯\_(ツ)_/¯
次に、オブジェクトを作成し
SubClass1
、呼び出しfoo()
て戻り値を確認できます。internal
ロジックをテストするためだけに、可視性を備えた追加の拡張関数を作成します。次に、オブジェクトを作成し
String
、呼び出しinternalFoo()
て戻り値を確認できます。override fun String.foo(): Int
ただし、本体を変更してテストに合格する可能性があるため、このソリューションは好きではありません。
では、クラス内で拡張機能をテストすることは可能ですか? そうでない場合、ロジックをテストするためにどのように設計を変更しますか?
saxon - NODE_SEQUENCE または ANY_SEQUENCE を使用した saxon 拡張関数
Saxon 9.3 (PE) から最新バージョンに切り替えています。拡張関数を使用しています (「extends ExtensionFunctionDefinition」を使用)
次のように定義された引数があります
XSLt では、たとえば最初の引数の変数を使用して呼び出しが行われます。これは構築された XML セクションです。
お電話にて、
ExtensionFunctionCall インターフェイスが変更されたため、コードを変更する必要がありました (以前は、
)
私は今2つの問題を抱えています:
1) パラメータの型が SequenceIterator から Sequence に変更されました。そのような
使えなくなり、
実行時エラーが発生する
ただし、受け取ったオブジェクトは TinyTree です (実行時に行われるデバッグによる)。
2) 戻り値も異なります (SequenceIterator から Sequence へ) 以前は new ListIterator(saxon_result); を返していました。
これはもう不可能です (saxon_result は java.util.ArrayList です) そして、ここで、ArrayList をシーケンスとして送り返す方法がわかりません...
知識のある人はこれに光を当てることができますか? ありがとう!ファビアン