|
38
|
| retronym · 技术社区 · 16 年前 |
|
|
1
29
问题是GenericTraversableTemplate使用了两次:一次用于可变集合(其类型参数应该是不变的),一次用于不可变集合(协方差总是最大的)。 GenericTraversableTemplate的类型检查假定类型参数的协方差或不变性。然而,当我们以可变特性继承它时,我们必须选择不变性。相反,我们希望协方差在一个不可变的子类中。 因为我们不能抽象出方差注释(但是;-)在GenericTraversableTemplate中,为了使我们能够根据子类将其实例化为任何一个,我们必须求助于强制转换(@uncheckVariance本质上是一种强制转换)。为了进一步阅读,我推荐我的论文(对不起;-)或者我们最近 bitrot paper |
|
|
2
8
在我的论文中,我描述了一个有界的微积分Scalina;作为种类语言的一部分的差异注释(早期版本也可以作为 workshop paper ). 与此讨论相关的是我在开发此演算时要采取的下一步:在此基础上构建另一层,以便可以抽象出越界(简单)和方差注释(使我头晕目眩)。实际上,你不只是在上面多加一层,而是泛化你的多态结构,让它们在所有层次上都能工作,并把你的“属性”(边界、方差注释、所需的隐式参数等等)变成具有特殊类型的正则类型,这些类型都要经过抽象。 edskodevries在惟一性类型的上下文中很好地解释了“属性就是类型”的思想。
|
|
|
3
5
我发现了另一个使用@uncheckedVariance的地方——一个返回抽象类型参数默认值的合成方法:
|
|
|
Mario Zelic · 更改子类方法签名时使用@重写注释 3 年前 |
|
|
LM10 · @Resource注释的含义 7 年前 |
|
|
Chris · 函数参数dtype声明不起作用? 8 年前 |
|
|
edison ouyang · 招摇过市批注未生成预期结果 8 年前 |