問題タブ [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 投票する
3 に答える
610 参照

mysql - 別のテーブルのサブセットを指定することだけを目的とするテーブル

私が設計しているデータベースにはemployeesテーブルがあります。複数のタイプの従業員が存在する可能性があり、そのうちの 1 つは医療関係の従業員です。データベースには、医療従事者とその能力との間の多対多の関係も記述する必要があります。

どの従業員が医療関係者であるかを指定することのみを目的としてmedical_employees、列のみを含むテーブルを作成しても問題ありませんか? id列には、テーブルidを参照する外部キー制約がありemployeesます。以下のコードは私の質問をより明確にするはずです:

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

sql - SQL オブジェクト テーブルのサブタイプ固有の属性にインデックスを作成する

オブジェクト タイプ「ドキュメント」のテーブルを作成しました。このテーブルには、ドキュメントの複数のサブタイプが含まれています (例: レシピ、出版物、契約書)。これらのサブタイプにはすべて共通の属性 (id、タイトル、ファイル サイズ) が含まれますが、多くの場合、追加の属性 (在庫番号など) が含まれます。よく検索される共通属性にインデックスを作成しましたが、よく検索されるサブタイプ固有の属性にもインデックスを作成したいと考えています。

たとえば、Documents テーブルの Title のインデックスを作成しました。

次のようなことをしたいと思います。

またはおそらく

サブタイプ固有の属性のインデックスを作成する方法を決定するのを手伝ってもらえますか?

お時間をいただきありがとうございます。

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

scala - 暗黙の検索は、Scala でスーパータイプを見つけるための型推論を導きません

次のコードでは、 の証拠がR[A]ありB、 のサブタイプであるため、のタイプを推測して証拠を使用するAことを期待します。しかし、scalac はそうすることを拒否します。fooARA

私はこれを試しました:

しかし、それでもうまくいきません。

さて、私が定義すると:

推論は機能しますが、実際のコードでは TT を参照する必要があります。

編集: A の証拠を A コンパニオン オブジェクトに移動したので、この解決策はもう機能しないようです。現実的な設定では、証拠は常にコンパニオン オブジェクトにあり、暗黙の検索でそれを見つける必要があります。

別の解決策は、証拠を反変にすることですが、これは推論Nothingやその他の問題など、多くの問題を引き起こします (私の実際のコードは、この単純化された例よりも複雑です)。

どうすればこれを正しく機能させることができますか?

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

python - Subtypingclassing ndarray - 通常の ndarray から構築する方法

以下のコードを検討してください。

この行y = imarray(z)は、コピーを作成して配列の型を変更するだけです。(ただし、imarray は ndarray のサブクラスであり、これは常に機能するはずです)。

どうすればこれを行うことができますか?

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

c# - サブタイプのポリモーフィック オブジェクトのインスタンス化で強制終了

私は次の設定をしています:

これに似たコードを実行すると、Unity force が終了します。C# がサブタイプ ポリモーフィズムをサポートしていることは知っているので、なぜこれが機能しないのかよくわかりません。特別なことでも高度なことでもありません。だから私はとても混乱しています。恥知らずな告白ですが、私は Java キャンプにいて、(無意識に) 自分の Java パラダイムを C# パラダイムに適合させようとしています。私はそれを正しく使用していませんか、それとも C# でサブタイピングがどのように機能するかを理解していませんか?

0 投票する
4 に答える
586 参照

java - コレクションのサブタイプ - Liskov Substitution Principle

Collection<Car>Java はのサブタイプとして許可しませんCollection<Vehicle>。これは、 Motorbike などの Vehicle の他のサブタイプである要素を含む可能性があるため、 everyのCollection<Car>代わりに使用できないため、Liskov 置換原則に違反しているためですか?Collection<Vehicle>Collection<Vehicle>

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

range - 範囲制限されたサブタイプが期待されるタイプの使用は、Ada で正しいと見なされますか?

https://github.com/AdaCoreU/Courses/blob/master/lectures/03_Programming_in_the_Large/02_Type_Safety/slides/Strong_Typing.ppt?raw=trueのスライド 28 によると 、「T は Integer のサブタイプであるため、以下のコードは正しいです。 。したがって、V1とV2は同じタイプです。

しかし、範囲宣言に違反することが許可されている場合、範囲宣言の目的は何ですか? コンパイル時に警告があり、実行時に例外があるため、私の考えは正しいようです。

スライドが間違っていますか、それとも何か誤解していますか?

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

scala - Scalaでオブジェクトのクラスを決定するにはどうすればよいですか?

yが厳密にbarのインスタンスであり、 fooではないことを確認する必要があります。Scalaでこれを行うにはどうすればよいですか?