对象上的 Scala F 有界多态性

2024-01-22

我无法在 Scala 中编写以下 F 界多态性。为什么?

trait X[T <: X[T]]
object Y extends X[Y]

我该如何表达并使其编译?


看来你确实应该能够写作,

trait X[T <: X[T]]
object Y extends X[Y.type]

但是,如果您尝试编译器会给您一个无用的(我认为是虚假的)错误,

scala> object Y extends X[Y.type]
<console>:16: error: illegal cyclic reference involving object Y
       object Y extends X[Y.type]

我说“虚假”是因为我们可以用一点额外的基础设施构建一个等效的对象,

trait X[T <: X[T]]

trait Fix { type Ytype >: Y.type <: Y.type; object Y extends X[Ytype] }
object Fix extends Fix { type Ytype = Y.type }
import Fix.Y

如果您想在实际代码中进行实验,请使用包对象代替object Fix会让这个习语更有用一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对象上的 Scala F 有界多态性 的相关文章

  • 如何在 Akka Stream 中记录流量?

    我有一个带有单个流 图的 Akka Stream 应用程序 我想测量源头的流量并每 5 秒记录一次 例如 在过去 5 秒内收到 3 条消息 我尝试过 someOtherFlow groupedWithin Integer MAX VALUE
  • 为什么这个对象属性未定义?

    考虑下面的代码 首先console log正确记录图像 您可以在下图中看到其属性 但是 当我尝试将其属性记录到控制台时 我得到undefined console log that data 0 cards works see image b
  • 如何在Dotty中使用given?

    我在看Dotty下的文档Contextual Abstractions页面 我看到了Given Instances 给定实例 或者简单地 给定 定义了 规范 值 用于合成给定子句的参数的某些类型 例子 trait Ord T def com
  • Scala 性能问题

    In the 丹尼尔 科泽夸 Daniel Korzekwa 撰写的文章 http blog danmachine com 2011 01 moving from java to scala one year html 他说以下代码的性能
  • 如何在 unity3d C# 中让相机跟随物体?

    我有一个名为 Ball 的对象 我向它添加了键盘交互性 WASD 来移动球 我需要摄像机留在后面并跟随球 但我遇到了错误 using UnityEngine using System Collections public class bal
  • Java / Scala Future 由回调驱动

    简洁版本 我怎样才能创建一个Promise
  • 如何在 PHP 中对数组和数据进行排序?

    这个问题旨在作为有关 PHP 中数组排序问题的参考 人们很容易认为您的特定案例是独特的并且值得提出新问题 但大多数实际上只是此页面上的解决方案之一的微小变化 如果您的问题因与此问题重复而被关闭 请仅在您能解释为什么它与以下所有问题显着不同的
  • 宏:knownDirectSubclasses 被嵌套类型破坏?

    我有一个宏 它枚举密封特征的直接子类型 import scala reflect macros Context import language experimental macros object Checker def apply A U
  • Scala 相当于 Java 的 Number

    我正在尝试为数值域类型构建类型层次结构 例如AYear is an Int 这是一个Number a Percentage is a Double 这是一个Number等等 我需要层次结构以便我可以调用toInt or toDouble关于
  • 最小重复子串

    我正在看 Perl代码高尔夫页面 http www perlmonks org node id 82878 不要问为什么 并遇到了这个 第 3 洞 最小重复图案 编写一个子例程 它接受一个字符串 该字符串可能包含 重复模式 并返回最小的重复
  • 通用特征的隐式转换

    我正在实现一个数据结构 并希望用户能够使用任何类型作为密钥 只要他提供一个合适的密钥类型来包装它 我有这个关键类型的特质 这个想法是进行从基类型到键类型的隐式转换 反之亦然 实际上 只使用基类型 该特征看起来像这样 trait Key T
  • Scala 如何忽略 Java 的检查异常?

    例如如果调用 JavaThread sleep这会抛出一个已检查的InterruptedException来自 Scala 源文件 然后不需要将调用包含在 Scala 中try catch Scala 如何删除将调用包围在 a 中的规则tr
  • 如何在 Scala 中打印任何内容的列表?

    目前我有一个打印整数的方法 def printList args List Int Unit args foreach println 我如何修改它 使其足够灵活 可以打印任何内容的列表 您不需要专用的方法 所需的功能已经在集合类中 pri
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • 创建动态多维对象/数组

    我正在尝试使用 JS 创建一个多维数组 以便我可以通过 Ajax 调用 PHP 来发布一些数据 这可能很简单 但我对 JS 的了解很少关于这个具体的事情 这是带有代码的 JSFiddle http jsfiddle net k5Q3p 我想
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • 缓存 Slick DBIO 操作

    我正在尝试加快 SELECT FROM WHERE name 的速度Play 中的查询类型 Scala 应用程序 我正在使用 Play 2 4 Scala 2 11 play slick 1 1 1 包 该软件包使用Slick 3 1版本
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处

随机推荐

  • 使用自定义文件格式注册ForDraggedTypes

    开发人员文档没有提供 registerForDraggedTypes 方法的完整描述 例如 我希望我的应用程序仅允许访问 abc 文件 我怎样才能做到这一点 如果您希望将文件拖到您的视图中 您应该注册NSFilenamesPboardTyp
  • 不同列的条件平均值

    我有一个像这样的 R 数据框 city2001 lt c a b a grade2001 lt c 5 5 7 city2002 lt c b b a grade2002 lt c 8 9 10 df lt data frame city2
  • 根据条件删除列表中的元素

    我有一个名为 Info 的类 其中 Info 有一个字符串类型实例变量 可以通过以下方式访问 Info getName 我还有一个实例信息列表 例如class list Info Aleck Info John Given a name l
  • 无法将类型“System.Web.Mvc.RedirectToRouteResult”隐式转换为“System.Web.Mvc.JsonResult”

    我如何将操作从 JsonResult 重定向到 ActionResult 但出现错误 我的错误是 无法将类型 System Web Mvc RedirectToRouteResult 隐式转换为 System Web Mvc JsonRes
  • pthread 与 python VM 的回调

    假设我有一个 python 脚本 它通过 ctypes 加载共享库 SL SL 设置了一个pthread T1 python 脚本通过 SL 配置回调 即 python 脚本通过引用 python 可调用项从 SL 调用函数 替代文本 ht
  • 如何通过互联网使用 MQTT?

    目前 我正在成功运行一个 mosquitto 代理 订阅主题并与本地网络中的客户端发布消息 如何与位于不同 IP 地址的另一个本地网络进行通信 我应该设置 2 个 mosquitto 经纪人 每个本地网络一个吗 其他本地网络中的 PC 需要
  • 以编程方式为本地存储库创建 NuGet 包

    我正在编写一个控制台应用程序来创建 NuGet 包 使用 Nuget Core 库 该包将托管在我们的内部服务器上以部署到我们的应用程序中 当我们使用 NuGet Package Explorer 手动创建包时 这一切都可以正常工作 但我们
  • XAML 解析器如何识别 NameScope?

    在 XAML 解析的上下文中 我想知道解析器如何知道类型何时定义 NameScope 它是否完全依赖于 INameScope 接口 检查instance is INameScope 它是否依赖于布尔属性 XamlType IsNameSco
  • 复合主键+外键

    我有一个包含调查列表的表 PK 是 ID CREATE TABLE dbo SurveyMaster ID nvarchar 4 NOT NULL Title nvarchar 200 NULL IsActive bit NOT NULL
  • iBeacons:如何获取广播信标功率(txPower)

    iBeacons 似乎广播其 txPower 参数 报告 1 米距离处的 RSSI 功率 该参数用于计算beacon accuracy and beacon proximity属性 有关 iBeacon 广告包的详细信息 请参见here h
  • 如何防止 ion-checkbox 选择相同的项目值?

    这是一个手风琴列表菜单 在菜单的第三层 我为每个项目放置了一个复选框 此代码已经从所选项目中获取了值 但问题是当我取消选择时 它会让我获取其值 如何防止复选框选择相同的项目并在选择后取消 表单 html
  • scrapy单个蜘蛛将多个项目类传递到管道

    我是 scrapy 新手 在 items py 中 我声明了 2 个 ItemClass 分别称为 ItemClass1 和 ItemClass2 蜘蛛方法 parseUrl 获取 html 并抓取数据并将其放入相应项目类的列表中 e g
  • Corda:错误=org.hibernate.InstantiationException:没有实体的默认构造函数

    我遇到了一个问题 请帮忙 基于 M13 的 Corda 代码 我的架构代码主要用于定义架构来引用您的示例 object LegalContractSchemaV1 MappedSchema schemaFamily LegalContrac
  • jQuery - 从 DOM 中删除元素时触发事件

    我试图弄清楚当从页面中删除元素时如何执行一些js代码 jQuery some element remove remove some element from the page need to figure out how to indepe
  • PHP file_get_contents 与 php 完好无损吗?

    与使用 include 不同 include 执行文件中包含的 php 是否可以将 php 文件的内容保存到变量中 但 php 仍然完整且可执行 我的目标看起来像这样 template some imaginary include func
  • 如何获得从1到N随机排序的数字数组?

    下面的代码生成一个数组N整数随机数并将结果存储在random int array N 20 allocate array N 2 call random seed call random number array random int ar
  • 响应UIWebView点击动作调用原生代码页面

    我正在寻找一种方法来监听 UIWebView 中的操作 例如 当我点击 UIWebView 内的链接或按钮时 我想调用一个新的本机组件 例如评论页面 或者 采取其他一些操作 例如更改导航栏项目 是的 你可以这样做 实施 webView sh
  • 使 ParallelEnumerable.OrderBy 稳定排序

    我正在使用对象的整数 id 并行对对象列表进行排序OrderBy 我有一些具有相同 id 的对象 并且需要排序保持稳定 根据微软的文档 https learn microsoft com en us dotnet api system li
  • 编译时不断出现java: invalid source release: 1.9错误

    我尝试使用该网站上的各个论坛来解决此问题 但没有任何帮助 我尝试了与修复其他人的 1 8 错误类似的技术 但没有任何效果 我的源文件夹下有我的 java 类文件 没有导入 我只是想要一个基本的输出消息来确保 intelliJ 正常工作 有人
  • 对象上的 Scala F 有界多态性

    我无法在 Scala 中编写以下 F 界多态性 为什么 trait X T lt X T object Y extends X Y 我该如何表达并使其编译 看来你确实应该能够写作 trait X T lt X T object Y exte