问题标签 [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.
.net - 检测接口泛型类型参数的差异
有没有办法反映接口以检测其泛型类型参数和返回类型的差异?换句话说,我可以使用反射来区分这两个接口:
两者的 IL 看起来相同。
c# - ref and out parameters in C# and cannot be marked as variant
What does the statement mean?
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.
r - 双向方差分析的同方差性检验
我一直在使用var.test
并bartlett.test
检查基本的方差分析假设,其中包括同质性(同质性,方差相等)。单向方差分析的过程非常简单:
但是,对于 2x2 表,即双向 ANOVA,我想做这样的事情:
当然,ANOVA 假设可以用图形程序检查,但是“算术选项”呢?这完全可以管理吗?您如何在双向 ANOVA 中测试同方差性?
java - 为什么没有用于覆盖的参数逆变?
C++ 和 Java 在覆盖方法时支持返回类型协方差。
但是,两者都不支持参数类型的逆变 - 相反,它转换为重载(Java) 或隐藏 (C++)。
为什么会这样?在我看来,允许这样做并没有什么坏处。我可以在 Java 中找到它的一个原因——因为它具有“选择最特定版本”的重载机制——但想不出 C++ 的任何原因。
示例(Java):
scala - 我可以用具有很好变体类型的 TraversableLike.map 的类似物“拉皮条我的图书馆”吗?
假设我想向map
Scala添加类似的功能List
,类似于list mapmap f
,它将函数应用于两次f
的每个元素。list
(一个更严重的例子可能是实现一个并行或分布式地图,但我不想被那个方向的细节分散注意力。)
我的第一种方法是
这现在很好用
当然,它只适用于List
s,我们没有理由不希望它适用于任何东西Traverseable
,具有map
函数,例如Set
s 或Stream
s。所以第二次尝试看起来像
但是现在,当然,结果不能分配给 a List[A]
:
有没有中间立场?我可以编写一个隐式转换,将方法添加到 Traversable 的所有子类,并成功返回该类型的对象吗?
(我猜这涉及理解可怕的CanBuildFrom
特征,甚至可能breakout
!)
c# - 我在 C# 中的方差函数不返回准确的值
源数据:
方差函数:
Excel 和一些在线计算器说方差是 1.56562E-06 而我的函数给了我 1.53492394804015E-06。我开始怀疑 C# 是否有准确性问题或什么。以前有人遇到过这种问题吗?
scala - 在 Scala 中使用协方差表示法或通用边界时
在 Scala 中,可以使用泛型类型参数上的 + 和 - 等方差运算符来定义方差。例如,List
类型在标准库中是协变的。
因此,可以像这样定义具有协变列表的函数:
方差也可以用通用边界来模拟。所以我们也可以这样写
当然这没有意义,因为list
已经是协变的。但同样的技巧也可以用于非协变的类型。(如Stack
)。当然,也可以从协变的堆栈(聚合的继承)创建新类型。
所以我的问题:
- 什么时候应该对方差使用通用界限?我们什么时候应该创建一个新的协变类型?
- 通用边界是否仅对方差有用,或者它们可以声明更多(语言概念)。
- 如果它们仅对方差有用,那么边界是否仅用于与 Java 兼容?
提前谢谢:)
c# - 通用参数委托?
我对新的 Action/Func/Variance/CoVariance 东西有点模糊,这可能是我需要的。
我想要的是能够将委托作为参数传递给一个方法,该方法接受一个字符串并返回一个布尔值。问题是我不能使用类型化委托或接口,因为它将在不共享库的不同库中使用,并且两者都将被第三方调用。
所以总的来说,我希望委托通过它的输入和返回类型来推断。
所以它会像:
A和B不共享任何库的地方,可以做到吗?
c# - Java 的使用站点差异与 C# 的声明站点差异相比如何?
我的理解是,在 C# 中为泛型指定方差发生在类型声明级别:当您创建泛型类型时,您指定类型参数的方差。另一方面,在 Java 中,在使用泛型的地方指定了方差:当您创建某个泛型类型的变量时,您指定其类型参数如何变化。
每个选项的优缺点是什么?
inheritance - Scala 函数方差和覆盖
我在重载时理解方法的变化时遇到了一点问题。
虽然由于返回类型的协方差,这非常有效
即使函数的参数类型是逆变的,这个也失败了。
我在这里做错了什么?任何指针?
问候, raichoo