- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么此 Scala 代码无法进行类型检查?
trait T { type A }
trait GenFoo[A0, S <: T { type A = A0 }]
trait Foo[S <: T] extends GenFoo[S#A, S]
我不明白为什么“类型参数 [S#A,S] 不符合特征 GenFoo 的类型参数边界 [A0,S <: T{type A = A0}]”。有解决办法吗?
编辑:正如已经指出的,一致性错误源于未能验证 S <: T{type A = S#A}
。丹尼尔·索布拉尔指出-explaintypes
,这告诉我们:
S <: T{type A = S#A}?
S <: T?
true
S specializes type A?
this.A = this.A?
S = this.type?
false
false
false
false
我不知道如何解释这一点。
请注意,如果我们尝试定义,我们会得到非法循环引用,
trait Foo[S <: T { type A = S#A } ] extends GenFoo[S#A, S]
虽然这里的类型细化似乎没有添加任何新信息。 (另请参阅Why is this cyclic reference with a type projection illegal?)
我的动机是创造一种特质Foo[S <: T]
专门从事 S#A
,如:How to specialize on a type projection in Scala?为了让它发挥作用,我正在尝试显示 S#A
作为显式参数 A0
在实现特征中GenFoo
,可以直接专门化。我希望应用 Miles Sabin 对 Why is this cyclic reference with a type projection illegal? 的回答中的类型细化思想。但我遇到了这个一致性错误。
最佳答案
这似乎就是答案:
S specializes type A?
关于专业的问题来自这里:T { type A = A0 }
。这是类型 T
和 A 类型
专用 - 意思是,它比原始 T
受到更多限制。
这个问题的答案是否定的——S
没有任何限制使其可以专门化。
关于scala - 为什么这些类型参数不符合类型细化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795623/
我正在尝试缩小此图像,但它会不断失真。 这是我应用细化的相关代码。我也尝试过使用“thin”功能而不是“skeletonize”,但结果相似。 from skimage.morphology impo
好的,据我所知,目前我们有两种方法 首先是我可以在给定脚本中使用的一些 javascript。但这会关闭所有内容的右键单击。 window.oncontextmenu = function() {
在 MarkLogic 中如何找到元素所在的文档 URI 匹配的值为1742 这里是示例 XML 文档: 1742 1742 TT 1742
摘要:我有一个数据集,其收集方式使得维度最初不可用。我想获取本质上是一大块无差别的数据,并为其添加维度,以便可以对其进行查询、子集化等。这是以下问题的核心。 这是我拥有的 xarray 数据集: D
我有一个大型数据集(请参阅下面的示例格式),我需要进行以下思考: 确定第 1、2、5 列中出现的重复值 - 如果全部重复,那么我需要删除多余的行并对第 8 列中的值进行平均(这对于我将发布的代码是成功
我正在做一个练习项目,其中 iOS 应用程序打印来自 jsonplaceholder.typicode.com 的/posts 列表,当用户选择一个时,加载详细 View Controller 并显示
module Access def last self[-1] end def start_end self[0] + last end end module Stri
我是一名优秀的程序员,十分优秀!