問題タブ [parametric-polymorphism]
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.
scala - パラメータ化された抽象型と共分散に戸惑う
次の Finagle サービスについて考えてみましょう。これは、型システムを通じて、要求が正しい型の応答になることを保証します。
最後の 3 行でRequest[T]#Response
andrequest.Response
の代わりにRequest[T]#Response[T]
and と言えたらいいのにと思います。request.Response[T]
私の試みは、さらに間接性を追加することでした:
しかし、これにより共変型T
が不変の位置に現れました。
これを行うことはまったく可能ですか?
scala - Scala: 二重に F-Bounded Polymorphic 型のコンパニオン オブジェクト
私はFバウンドタイプを持っています:
そして、最初のタイプによってパラメータ化された 2 番目の F-Bound タイプ。
これらの型を利用するケース クラスを喜んで書くことができます。
ここで、ケース クラスのコンパニオン オブジェクトが必要です。これは、特性 B を通じて参照できます。たとえば、次のようになります。
しかし、コンパニオン パラメーター化 (最後の行) の BInst には型パラメーターが必要なため、これはコンパイルに失敗します。同様に
失敗します。コンパニオン オブジェクトの正しい型は何ですか?
scala - 3 レベルの深い F-Bound 型の構築
私は 3 つの F-Bound タイプA
、B
&C
を持ってB
います。とをインスタンス化できますが、 をインスタンス化しようとすると、コンパイラは型を推測できません。明示的に型を指定すると、すべてが機能しますが、これらの型が失われるのはかなりばかげているようです (これは型の消去によるものですか?)。A
C
B
A
A
B
C
具体的に型を指定する必要がない回避策はありますCInst
か?
現在、型のパラメーター化を使用して F-Bounds を実装していますが、抽象型メンバーに切り替えるとこの問題は解決しますか? その時、クラスはどのようになりますか?
scala - クラスのパラメトリック型に特性を追加する
abstract class Base[T]
ユーザーが指定した型を超えるライブラリがありT
ます。多くの特定Base[T]
のサブクラスがあり、一部はT
やS
などのオーバー タイプSpecific[T, S]
ですが、これは関係ありません。もちろん、ユーザーはインスタンスの作成中に任意のものを指定できますが、それを特性T
として扱いたい、つまり、ユーザーのタイプを. Scalaでそれを行うにはどうすればよいですか? この質問のタイトルが正しいことを願っています。T
AdditionalAbilities
AdditionalAbilities
例 (構文的に正しくない可能性があります)
どんなものでも動作しますT
。
c# - パラメータ タイプから派生した任意のタイプのパラメータを受け入れるアクションを作成するには (多態性パラメータ)
Web API でクライアントがサーバーに要求するための動的構造を構築したいと考えています。次のコードを使用して質問に対処しようとしましたが、機能しません。
<travel>
ジェネリック型のようなサービスを送信するにはどうすればよいですか- サーバーコードを変更するにはどうすればよいですか (またはクライアント/サーバーをすべて変更する必要があります)?
PS:私の質問を最後まで読んでくれてありがとう。
クライアントコード
機能していないサーバーコード
ところでそれは大丈夫ですが、サーバーに < T > を送信する方法がわかりません
エラーメッセージ
Client call server, server will be getting an error message " StatusCode: 404, ReasonPhrase: 'Not Found' "