問題タブ [subtyping]

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 投票する
1 に答える
170 参照

function - Scala val 構文: val myVal:{ def ... } とはどういう意味ですか?

私は Scala と funcprog が初めてです。

私はコードを持っています (あなたの何人かはそれを認識するかもしれません):

val ValueChanged: {...} が何であるかを理解していません。

この投稿から、私は一種のことを学びました

これらは異なる名前空間などにあり、 タイプ ValueChangedEventの抽象サブタイプであるため、2 つの無関係なものです。

それでは、Scala ワークシートで試してみます。

そして、「クラスのみが宣言されたメンバーと未定義のメンバーを持つことができます」というエラーが表示されます...同様の構造ではありませんか?

最後に、質問は次のとおりです。

  • コードのval ValueChanged部分のValueChangedとは何ですか?

  • タイプ ValueChanged <: イベントとは本当に無関係ですか

  • この構文の意味:

    val myVal:{def func{x:T}:T}

? ここでの値の名前、その型、および実際の値は何ですか?

ありがとう!

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

java - ArrayList of objects and abstract

I am trying to learn wildcards in Java. Here I am trying to modify the printCollection method so that it will only take a class which extends AbstractList. It shows the error in comment. I tried to use an ArrayList of objects, it works fine. I am using Java 7.

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

debugging - functor適用後にpolymlでジェネリックの特殊化/サブタイプを表示する

次のプログラムでは、 がジェネリック型valStr.value のサブタイプを想定していることがわかります。しかし、私がそれをタイプで調べると、 として示されています。に特化したインタプリタで見る方法はありますか?pairtpolytpolytpair

これは私が実行したときに得られるものですpoly:

それを生成するために使用されるコードは次のとおりです。

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

java - Java SE 仕様 |S| シンボル

サブタイプとキャストについて Java 仕様を読んでいます。 S <: T は、S が T のサブタイプであることを意味します。<: |T| 意味?たとえば、このコンテキストでは:

型引数の 1 つは型変数またはワイルドカードで、上限は (必要に応じてキャプチャ変換から) S です。もう 1 つの型引数 T は、型変数またはワイルドカードではありません。|S| も |S| もありません。<: |T| |T|でもありません <: |S|.

|T| 参照の型は? Tのクラスを指していますか?

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

sql - Postgres で外部キーをターゲット テーブルのサブセットに定義する

例:
私は持っています:

列 table_b_id に制約チェックを追加して、型の値が「X」であるテーブル B の行のみを指していることを確認します。
テーブル構造を変更できません。
「CHECK」と特定のクエリを実行するpostgres関数を使用して実行できることは理解しましたが、回避することを推奨する人を見てきました。
それを実装するための最良のアプローチは何かについての情報は役に立ちます。

0 投票する
5 に答える
746 参照

haskell - forall はなぜ a. a は Int のサブタイプとは見なされませんが、forall a 型の式を使用できます。Int型のどこかが期待されていますか?

型チェッカーを通過する次の関数定義のペアを考えてみましょう。

つまり、forall a. a型の式が期待される場所で、型の式を使用できますInt。これはサブタイピングによく似ているように思えますが、Haskell の型システムにはサブタイピングがないと言われています。これらの代替可能性の形態はどのように異なるのでしょうか?

この質問は に固有のものではありませんforall a. a。その他の例は次のとおりです。

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

sql - 2 つの列の外部キー

私の学校のプロジェクトでは、データベースを作成する必要がありました。これは私の ERD です。

ERD

SQL で、Category テーブルを作成します。

製品表

製品テーブルには、Category.Id に CategoryId (外部キー) がありますが、Product.CategoryId には、Category.SubCategoryId にも外部キーが必要です。

これは可能ですか、それとも「SubCategory」という追加のテーブルを作成してから、Category.Id と SubCategory.Id に外部キーを追加する必要がありますか?

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

java - Casting bounded wildcard to unbounded wildcard within a generic type is an error (X> to X>

Consider this sample:

In other words, I can assign a Class<? extends T> to a Class<?> for some arbitrary T but not a Set<Class<? extends T>> to a Set<Class<?>>.

It probably has something to do with some limitation on covariance/contravariance, but what?

I could introduce a cast: Class.class::cast would do it. But is there a way to bend the compiler to my will with subtle type-fu rather than bashing it in the head with a cast?