问题标签 [variance]

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 回答
137 浏览

.net - 检测接口泛型类型参数的差异

有没有办法反映接口以检测其泛型类型参数和返回类型的差异?换句话说,我可以使用反射来区分这两个接口:

两者的 IL 看起来相同。

0 投票
4 回答
3785 浏览

c# - ref and out parameters in C# and cannot be marked as variant

What does the statement mean?

From here

ref and out parameters in C# and cannot be marked as variant.

1) Does it mean that the following can not be done.

2) Or does it mean I cannot have the following.

I tried (2) and it worked.

0 投票
3 回答
18210 浏览

r - 双向方差分析的同方差性检验

我一直在使用var.testbartlett.test检查基本的方差分析假设,其中包括同质性(同质性,方差相等)。单向方差分析的过程非常简单:

但是,对于 2x2 表,即双向 ANOVA,我想做这样的事情:

当然,ANOVA 假设可以用图形程序检查,但是“算术选项”呢?这完全可以管理吗?您如何在双向 ANOVA 中测试同方差性?

0 投票
6 回答
4834 浏览

java - 为什么没有用于覆盖的参数逆变?

C++ 和 Java 在覆盖方法时支持返回类型协方差。

但是,两者都不支持参数类型的逆变 - 相反,它转换为重载(Java) 或隐藏 (C++)。

为什么会这样?在我看来,允许这样做并没有什么坏处。我可以在 Java 中找到它的一个原因——因为它具有“选择最特定版本”的重载机制——但想不出 C++ 的任何原因。

示例(Java):

0 投票
2 回答
725 浏览

scala - 我可以用具有很好变体类型的 TraversableLike.map 的类似物“拉皮条我的图书馆”吗?

假设我想向mapScala添加类似的功能List,类似于list mapmap f,它将函数应用于两次f的每个元素。list(一个更严重的例子可能是实现一个并行或分布式地图,但我不想被那个方向的细节分散注意力。)

我的第一种方法是

这现在很好用

当然,它只适用于Lists,我们没有理由不希望它适用于任何东西Traverseable,具有map函数,例如Sets 或Streams。所以第二次尝试看起来像

但是现在,当然,结果不能分配给 a List[A]

有没有中间立场?我可以编写一个隐式转换,将方法添加到 Traversable 的所有子类,并成功返回该类型的对象吗?

(我猜这涉及理解可怕的CanBuildFrom特征,甚至可能breakout!)

0 投票
2 回答
932 浏览

c# - 我在 C# 中的方差函数不返回准确的值

源数据:

方差函数:

Excel 和一些在线计算器说方差是 1.56562E-06 而我的函数给了我 1.53492394804015E-06。我开始怀疑 C# 是否有准确性问题或什么。以前有人遇到过这种问题吗?

0 投票
2 回答
1055 浏览

scala - 在 Scala 中使用协方差表示法或通用边界时

在 Scala 中,可以使用泛型类型参数上的 + 和 - 等方差运算符来定义方差。例如,List类型在标准库中是协变的。

因此,可以像这样定义具有协变列表的函数:

方差也可以用通用边界来模拟。所以我们也可以这样写

当然这没有意义,因为list已经是协变的。但同样的技巧也可以用于非协变的类型。(如Stack)。当然,也可以从协变的堆栈(聚合的继承)创建新类型。

所以我的问题:

  1. 什么时候应该对方差使用通用界限?我们什么时候应该创建一个新的协变类型?
  2. 通用边界是否仅对方差有用,或者它们可以声明更多(语言概念)。
  3. 如果它们仅对方差有用,那么边界是否仅用于与 Java 兼容?

提前谢谢:)

0 投票
3 回答
534 浏览

c# - 通用参数委托?

我对新的 Action/Func/Variance/CoVariance 东西有点模糊,这可能是我需要的。

我想要的是能够将委托作为参数传递给一个方法,该方法接受一个字符串并返回一个布尔值。问题是我不能使用类型化委托或接口,因为它将在不共享库的不同库中使用,并且两者都将被第三方调用。

所以总的来说,我希望委托通过它的输入和返回类型来推断。

所以它会像:

A和B不共享任何库的地方,可以做到吗?

0 投票
4 回答
3992 浏览

c# - Java 的使用站点差异与 C# 的声明站点差异相比如何?

我的理解是,在 C# 中为泛型指定方差发生在类型声明级别:当您创建泛型类型时,您指定类型参数的方差。另一方面,在 Java 中,在使用泛型的地方指定了方差:当您创建某个泛型类型的变量时,您指定其类型参数如何变化。

每个选项的优缺点是什么?

0 投票
4 回答
5616 浏览

inheritance - Scala 函数方差和覆盖

我在重载时理解方法的变化时遇到了一点问题。

虽然由于返回类型的协方差,这非常有效

即使函数的参数类型是逆变的,这个也失败了。

我在这里做错了什么?任何指针?

问候, raichoo