covariance 相关问题

协方差,逆变和不变性描述了现有类型继承层次结构在经历某些转换(例如泛型中的使用)时如何变化。如果转换保持原始层次结构的顺序,则它是“协变的”。如果它反转它,它是“逆变的”。如果它打破它,它是“不变的”。

我可以干净地创建派生类型的派生集合吗?

我有三门课: 动物 长颈鹿 : 动物 老虎:动物 ...并且想要实现三个字典类: 抽象动物词典 长颈鹿词典:动物词典,IDictionary 我有三门课: Animal Giraffe : Animal Tiger : Animal ...并且想要实现三个字典类: abstract AnimalDictionary GiraffeDictionary : AnimalDictionary, IDictionary<int, Giraffe> TigerDictionary : AnimalDictionary, IDictionary<int, Tiger> 我很清楚基地AnimalDictionary无法实现IDictionary或ICollection,因为将老虎放入GiraffeDictionary会导致问题。我不会假装正确理解协变和逆变,但我确实明白为什么你不能把老虎放在长颈鹿圈里。 相反,我通过让它继承 AnimalDictionary 来实现 IEnumerable<KeyValuePair<int, Animal>>,并且只是让它实现与字典相同的所有方法,减去 Add(),因为 Add() 将在派生类中实现。 不幸的是,在派生集合类中实现 IDictionary 给我带来了 GiraffeDictionary 和 TigerDictionary 中的一些丑陋: ICollection<Giraffe> IDictionary<int, Giraffe>.Values => _internalDictionary.Values.Cast<Giraffe>().ToList(); 这让我担心,因为我希望在紧密的循环中迭代这些集合。我希望能够迭代 Values 集合,而无需转换和创建全新列表的性能成本,但 Values 是 ICollection,而不是 IEnumerable。 如何解决这个问题?我是否缺少一种替代方法,或者我应该完全放弃基类并接受派生集合类中将有重复的方法? 我认为泛型AnimalDictionary<T>在这里会很有帮助,我们可以在泛型类中编写通用方法,该方法可以被其他派生类型重用。这是我编写的一个示例,它应该给出一些如何解决这个问题的想法: public class AnimalDictionary<T> where T : Animal { } public class Animal { } public class Cat : Animal { } 调用代码如下: public static void Main() { AnimalDictionary<Cat> catDictionary = new AnimalDictionary<Cat>(); Console.WriteLine("Hello World"); }

回答 1 投票 0

如何从数据库表构造numpy协方差矩阵(使用pandas加载)

我有一个从数据库读取的 pandas 表,它包含协方差矩阵(数字是随机的,因此它不是正半定义)。我想要一种从

回答 1 投票 0

使用numpy.einsum计算数据的协方差矩阵

我的目标是使用 numpy.einsum 计算一组数据的协方差矩阵。举个例子 example_data = np.array([0.2, 0.3], [0.1, 0.2]]) 以下是我尝试过的代码: 将 numpy 导入为...

回答 2 投票 0

为什么 C# 4.0 的协变/逆变仅限于参数化接口和委托类型?

这是 CLR 的限制还是与现有代码存在兼容性问题? 这是否与 C# 4.0 中委托组合的混乱方差有关? 编辑: 是否可以...

回答 3 投票 0

从(缩小的)协方差矩阵计算(部分)相关性(帮助将 R 代码移植到 Python)

有一篇论文我觉得很有趣,想使用Python中的一些方法。埃尔布等人。 2020 对成分数据和 Jin 等人实现了偏相关。 2022年实施...

回答 1 投票 0

.NET 4.0 通用不变式、协变式、逆变式

这是我面临的场景: 公共抽象类记录{} 公共抽象类 TableRecord : 记录 { } 公共抽象类 LookupTableRecord : TableRecord { } 公章密封...

回答 2 投票 0

在泛型中具有协方差的强制转换类

我对泛型和 C# 中的不变性和协变性有疑问 我想要转换 handlerConcrete,这里是代码 [测试类] 公共课单元测试1 { [测试方法] 公共无效测试方法1() ...

回答 1 投票 0

PHP - 欺骗返回类型协方差以进行代码预测

考虑: 抽象类 BaseModel { 受保护的静态字符串$dataObjectClass; 公共函数 toDataObject(): ?IDataObject { 返回静态::$dataObjectClass::from($this); ...

回答 1 投票 0

用Java实现Kotlin接口的错误:返回类型不兼容

我尝试用 Java 实现一个 Kotlin 接口,所以我的接口是这样的: 接口 KInterface { 重要物品:收藏 } 接口项目接口{ // } 然后,在我的...

回答 0 投票 0

泛型兼容性

我知道这通常可以追溯到方差,但我不确定如何解决下面显示的问题。 我想要一个通用传感器列表,并将特定传感器类型添加到列表中,但是这

回答 1 投票 0

为什么lme4模型总结要这么久? [关闭]

为什么model summary (in lme4) 跑了6到8个小时? 我的样本量是 35,700,有 12 个预测变量。

回答 0 投票 0

是否有可能创建一个虚函数来返回派生类型的正确 unique_ptr?

我想让函数 clone() 实际上可以重写,因为我需要它在我的应用程序中是多态的。 类组件 { 虚拟组件 *cloneImpl() const = 0; 民众: std::unique_ptr<

回答 3 投票 0

使字典在 C# 中只读

我有一本字典> 并希望将该成员公开为只读。我看到我可以将它作为 IReadOnlyDictionary> 返回,但是我 ...

回答 7 投票 0

函数 COVAR - R

我正在尝试创建一个函数来计算协变量,如下所示: 协变量<-function(x){coef<-sd(x)/mean(x)*100 return(coef)} Occurs that when I try to run the function as below the following

回答 0 投票 0

如何在 Go 中处理通用切片? [重复]

我试图在 Go 中为四叉树实现一个 Node 类,我想在该类上有一个“插入”方法,它接受任何具有 x 和 y 坐标的切片,本质上......

回答 1 投票 0

tensorflow 概率的体系结构 MultivariateNormalFullCovariance

努力学习tfp脑放屁。我想在给定一些解释性输入的情况下对数据集的均值和协方差进行建模。我知道我的架构是错误的,但我不确定如何。看代码...

回答 0 投票 0

在Scala中,是否缺少协方差的传递规则?

例如 特征 AA[+X[n], +Y] { def x: X[Y] // [错误]: 协变类型 Y 出现在方法 x 的类型 => X[Y] 的不变位置 } 这似乎是错误的信息,因为 X[Y] 很容易是

回答 1 投票 0

Python 分配协方差行明智计算

我正在尝试根据我拥有的数据框将协方差值分配给列。 df 是 ~400k 记录 x 30+ 列。作为 COV() 输入的两个数据系列都对齐为 ...

回答 0 投票 0

python数据帧协方差行

我有 50k 条记录,其中包括每个键/记录的时间序列:其中包括 12 个月的账户回报和 12 个月的基准回报以及许多其他数据。我正在尝试接受

回答 0 投票 0

在 Go 中,如何隔离返回超过原始值的包?

如果我有一个请求包,它定义了一个接口 TextExtractor 和一个返回 Text 类型的 GetText 方法,实现必须完全满足 TextExtractor 合同,它们是

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.