問題タブ [enrich-my-library]

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.

0 投票する
2 に答える
547 参照

scala - クロス積ベースのメソッドを scala コレクションに追加するにはどうすればよいですか?

願わくば、これが図書館の売春斡旋に関する簡単な質問になることを願っています (このテーマに関する他の質問は、私の現在のスキル レベルを超える回答を生成する傾向があるためです)。

私がやりたいのは、コレクションとそれ自体の外積をマッピングすることだけです。

だから私はTraversableこうやってポン引きしようとしました:

しかし、それは機能しません (暗黙の変換を行っていません)。なぜそうでないのかわかりません (私は scala にかなり慣れていません)。また、 Enriching Scala collections で提案されている方法を、次のような方法で試しました。

、しかし、それは私の(より単純に見える)方法と同じエラーをスローします。

ここで何が間違っていますか?

0 投票する
1 に答える
364 参照

scala - 内部クラスを充実させる

外側のクラスの任意のインスタンスで機能する内側のクラスに、enrich-my-library パターンを実装したいと考えています。このようなもの:

型が一致しないため、このコードはコンパイルされません: 型getのオブジェクトを返しますOuter#Innerが、test期待していouter.Innerます。

それを機能させるには2つの方法がありますが、どちらもasInstanceOf避けたい使用を伴います。get最初のものは単に to の結果をキャストすることですouter.Inner:

2 番目はもう少し一般的で、キャストを次のように行いExtInnerます。

キャストを行う必要がないように、内部クラスを充実させるより良い方法はありますか?

0 投票する
3 に答える
2873 参照

scala - ライブラリ オブジェクトに新しいメソッドを追加するにはどうすればよいですか?

ライブラリ (具体的にはcom.twitter.finagle.mdns.MDNSResolver) からクラスを取得しました。クラスを拡張したい (Try[Group] ではなく、Future[Set] を返すようにしたい)。

もちろん、サブクラス化してそこにメソッドを追加できることはわかっています。しかし、私は Scala を学びながら学んでおり、これは何か新しいことに挑戦する機会のように思えます。

これが可能であると私が考える理由は、の動作ですJavaConverters。次のコード:

asScalaJava の にはメソッドがないため、コンパイルされませんArrayList。しかし、いくつかの新しい定義をインポートすると:

それから突然方法ありasScalaます。ArrayListクラスが透過的に拡張されているように見えます。

の動作をJavaConverters正しく理解していますか? その方法論を複製できますか (また複製する必要がありますか)?

0 投票する
1 に答える
195 参照

scala - 拡張メソッドを含めるように scaladoc を構成する

暗黙的な変換を指定することで、暗黙的な変換からのメソッドを含めるように scaladoc を構成できますか?

例)

barのドキュメントにscaladoc に拡張メソッドを含めることはできますFooか?

0 投票する
1 に答える
1489 参照

scala - 型の不一致; 見つかった: Int(1) 必要: B

Listサイズを比較するためのより合理的な方法を提供するためにクラスを拡張しようとしていますが、タイトルのエラーに遭遇します...

これが私のコードです:

アイデアは、リストのサイズを比較するだけなので、それらのタイプが異なる可能性があり、問題にならないということでしたが、これを実行しようとすると:

前述のエラーが発生します。B を削除thatしてタイプに設定すると正常にList[A]動作しますが、2 つの異なるタイプを含むリストを使用することはできません...

A と B の両方が同じ型になれないのはなぜですか? または、何か不足していますか?

編集:わかりました、エラーの解決策を見つけました。これはかなり単純です:

しかし、私の質問はまだ残っています。なぜ私はそれを他の方法で行うことができないのですか?