cost 268 ms
是否存在非協變 `Type[T]`?

[英]Is there a non-covariant `Type[T]`?

假設我正在嘗試為為用戶定義類型注冊反序列化器的庫函數編寫類型提示:用戶應提供類型T以及函數decode: str -> T 。 我能想到用 python 的 PEP-484 類型提示寫這個的最自然的方法是: from typing import Callable, Type, TypeVar ...

不變泛型似乎無法正常工作

[英]Invariant Generics don't seem working correctly

我已經閱讀了一些關於 Java 中的Covariance 、 Contravariance和Invariance的文章,但我對它們感到困惑。 我正在使用Java 11,並且我有一個類層次結構A => B => C (意味着C是B和A的子類型,而B是A的子類型)和類Container : ...

是否可以有 Java arrays 的接口?

[英]Is it possible to have an interface for Java arrays?

假設我們想在返回數組的接口中有一個方法,如下所示:interface A { B[] findAllB(); } 但是 arrays 是非常低級的並且是明確實施的。 它們的實現是最終的,不能改變,就像最終的 class 一樣。 如果此接口中的返回類型已經是數組,則無法返回除數組以外的任何 ...

TypeScript中方差、協方差、逆變和雙方差的區別

[英]Difference between Variance, Covariance, Contravariance and Bivariance in TypeScript

您能否使用小而簡單的 TypeScript 示例解釋什么是方差、協方差、逆變和雙方差? [持續更新] 有用的鏈接: Oleg Valter的另一個與該主題相關的好答案 Titian-Cernicova-Dragomir對*-riance 的很好解釋 斯蒂芬博耶博客 Scala 文檔- 用例子很好 ...

Rust function 指針逆變

[英]Rust function pointer Contravariant

我很難理解 Rust 中的逆變性。 具體來說: 然而,同樣的邏輯不適用於 arguments。 考慮嘗試滿足: fn handle_animal(Animal); 和fn handle_animal(Cat); 第一個 function 可以接受 Dogs,但第二個 function 絕對不能。 協 ...

直觀地解釋為什么`List`是協變的,而`Array`是不變的?

[英]Intuitively explain why `List` is covariant but `Array` is invariant?

從List[+T]我了解到狗列表也是與直覺完全一致的動物列表。 來自def:: [B >: A](elem: B): List[B]我知道我可以將動物( B ,不太具體)添加到狗列表( A ,更具體)並會得到一個列表的動物。 這也符合直覺。 所以基本上List是好的。 從Array[T]我了 ...

如何在隱式中實現使用站點差異?

[英]How to implement usage site variance in implicits?

對原始問題的大量修改:現在我預先呈現整個代碼,而不顯示解釋我動機的變體。 為混亂道歉。 我需要一個簡單的類型 class 在類型的成員類型之一上實現投影 - 出於本示例的目的,讓它成為一個簡單的轉換: 在上面的例子中,很明顯投影應該是遞歸的, Subject子類聲明它們自己的規則。 顯然,我希望投 ...

Kotlin 中的方差/協方差 generics

[英]Variance/Covariance generics in Kotlin

有一個密封類 Result,它被參數化為兩種類型 - 成功結果(T)和錯誤類型(R)。 它由兩個類繼承: 一個。 成功 - 數據 class,在構造函數中接受 object T 灣。 錯誤 - 數據 class,在構造函數中接受 object R 我需要創建一個 function,它返回結果 ob ...

這是使用 php 7 斷言的類不變性的有效示例嗎?

[英]Is this a valid example of Class invariances using php 7 asserts?

我試圖更好地理解 Liskov 原則使用的類不變性。 我知道像 D這樣的一些語言對 invariant 有本機支持,但是,在 PHP 中使用斷言我嘗試結合魔術方法和斷言: 我可以使用 assert 來創建合約嗎? BadPerson 是 Liskov 在繼承上違反類不變性的有效例子嗎 ...

無法在列表 c# 中保存通用接口實現

[英]Unable to hold generic interface implementations in list c#

如何使列表包含通用接口的所有不同實現? 例如 我想把所有的捕手放在一個類似的列表中, 我知道在 c#(協方差、逆變和不變性)中處理通用修飾符是一件很困難的事情,但無法讓它工作。 嘗試:在中添加“out” 但給出編譯時錯誤: “類型參數 'T' 必須在 'ICatcher.Catch(T)' 上逆變 ...

在State中繞過不變結果類型

[英]Getting around invariant result type in State

我想定義一個State是建立一個特質的具體亞型,按decodeFoo : 這不會編譯,因為State在cat中定義為type State[S, A]並且編譯器響應: 我可以通過將decodeBar和decodeBaz的定義擴展為State[Seq[Byte], Foo]類型來解決 ...

Scala-可變集合中的協變類型

[英]Scala - covariant type in mutable collections

我是Scala世界的新手,現在我正在閱讀稱為“ Scala in Action”(由Nilanjan Raychaudhuri撰寫)的書,即第97頁上的“可變對象需要不變”部分,而我不理解以下內容:直接取自上述書籍。 假設ListBuffer是協變的,並且下面的代碼段可以正常工作而沒有任 ...

mypy 泛型子類導致類型不兼容

[英]mypy generic subclass leads to incompatible types

我正在玩弄帶有類型提示的幺半群。 為此,我寫道: 在子類中使用 this 時,例如 我收到error: Argument 1 of "append" incompatible with supertype "Monoid" 。 由於List是Monoid的適當子類,我希望它能夠輸入。 我究竟 ...

協方差混亂。 無法將已實現接口的元組分配給元組列表

[英]Covariance confusion. Can't assign tuples of implemented interfaces to list of tuples

前言:我知道關於協方差和協方差有很多疑問和答案,但我仍然感到困惑,不確定要實施哪種解決方案。 我有兩個接口,它們的實現旨在成對一起使用。 一個提供有關銷售商品的信息,一個提供與語言有關的商品信息。 我無法控制這些接口 : 對於有形的GoodsItem和無形的ServiceI ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM