问题标签 [parametric-polymorphism]

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 投票
0 回答
101 浏览

scala - 对参数化抽象类型和协方差感到困惑

考虑以下 Finagle 服务,它通过类型系统保证请求导致正确类型的响应:

如果我能在最后三行中只说Request[T]#Responseandrequest.Response而不是Request[T]#Response[T]and就好了。request.Response[T]

我的尝试是增加更多的间接性:

但这导致协变类型T出现在不变的位置。

有可能做到这一点吗?

0 投票
1 回答
42 浏览

java - 如何覆盖 Java 中的参数化静态方法?

如何从扩展类中重写此方法?

我正在使用 java 7

0 投票
2 回答
221 浏览

scala - Scala:双重F界多态类型的伴侣对象

我有一个 F-Bound 类型:

还有第二种 F-Bound 类型,由第一种类型参数化。

我可以愉快地编写使用这些类型的案例类:

现在我想为案例类创建一个伴生对象,我可以通过特征 B 引用它,例如:

但这无法编译,因为伴随参数化(最后一行)中的 BInst 需要类型参数。相似地

失败。伴生对象的正确类型是什么?

0 投票
1 回答
59 浏览

scala - Update function in double F-Bound Polymorphic types

I would like to be able to provide a copy-on-update function in a parametrized, F-Bounded trait, where the value to B updated is also F-Bounded. The traits are as follows:

In trait B, I would like to provide a function with the signature

so that the case class just implements

but this doesn't currently compile. What are the correct types for update in B?

edit

An example which should work (but currently doesn't):

0 投票
1 回答
49 浏览

scala - 构建三层深 F-Bound 类型

我有三个 F-Bound 类型AB& C,其中B由 参数化A,并且CB(因此也由A)参数化。我可以实例化Aand B,但是当我尝试实例化C时,编译器无法推断类型。如果我明确地给它类型,一切正常 - 但这些类型丢失似乎很愚蠢(这是由于类型擦除吗?)。

是否有解决方法,我不必CInst专门指定类型?

我目前正在使用类型参数化来实现 F-Bounds,但是切换到抽象类型成员会解决这个问题吗?那时的课堂会是什么样子?

0 投票
1 回答
230 浏览

scala - scala:使用 F-Bound 参数引用特征

我正在设计一个 F-Bound 数据类型,并且有一个工作伴侣对象。我想从特征本身引用这个伴随对象,但我无法正确获取类型。

一个可行的解决方案companioncompanion2足够了,尽管关于如何构造这些类型签名的一般提示会很有用。

编辑

我想使用伴随对象来存储canBuildFrom样式隐式以及构建器,但是由于内容类型A具有上限,所有生成函数都需要知道这个边界,因此伴随对象特征的参数化。这个设计的灵感来自GenericCompanion.scala,当然,添加类型边界会使一切变得更加困难:P

0 投票
2 回答
155 浏览

scala - 向类中的参数类型添加特征

我有一个库,其中 anabstract class Base[T]超过了用户提供的类型T。有许多特定Base[T]的子类,有些是过度类型TS,比如Specific[T, S],但这无关紧要。用户当然可以在创建和实例时指定任何T内容,但我想将其视为T具有特征AdditionalAbilities,或者换句话说,我想用AdditionalAbilities. 我怎么能在 Scala 中做到这一点?我希望这个问题的标题是正确的。

示例(可能在语法上不正确)

可以与任何T.

0 投票
1 回答
125 浏览

pointers - 为什么在与绑定一起使用时,带有多态 Ptr 的“peek”会返回 GHC.Prim.Any?

使用低级 GNU 科学库绑定Bindings.Gsl.RandomNumberGeneration,我在 GHCi 中遇到了这种奇怪的类型行为,其中绑定更改返回类型从 a peekinto GHC.Prim.Any。我试图理解为什么因为我不能使用c'rng_alloc除非我保留指向rng. 例如:

尝试明确指定 peek 返回的类型也无济于事:

0 投票
2 回答
257 浏览

ruby-on-rails - 多态,has_many_and_belongs_to_many 自引用关联

我想加入两个具有多态多对多关联的模型。

我的桌子是父母和孩子,可以互相成为朋友。为此,我想创建一个朋友关联表,例如父母或孩子可以与其他父母或孩子成为朋友

我阅读了一些教程,涵盖了 has_many、has_many through 和多态关联,但还没有任何东西可以将这两个功能混合在一起。

我尝试了以下方法:

朋友桌

儿童模型

父模型

但是,我坚持如何定义朋友模型。关于如何在 rails 中定义这种关系的任何提示?

0 投票
1 回答
2091 浏览

c# - 创建接受从参数类型派生的任何类型参数的操作(多态参数)

我想为客户端构建一个动态结构,以在 Web API 中询问服务器。我尝试使用以下代码来处理我的问题,但是它不起作用。

  1. 我怎样才能发送一个像<travel>服务一样的泛型类型
  2. 如何更改服务器代码(或都需要更改客户端/服务器)?

PS:如果您将我的问题读到最后,感谢您的耐心等待。

客户代码

服务器代码,不起作用

顺便说一句没关系,但我不知道如何发送 <T> 到服务器

错误信息
Client call server, server will be getting an error message " StatusCode: 404, ReasonPhrase: 'Not Found' "