为什么是“特质T”? C级; class X extends (C with T)` 无法编译?

2024-01-08

斯卡拉代码:

trait T
class C
type W = C with T
class X extends W

W是一个类型别名,但我想定义一个类来扩展它。为什么以及如何解决它?


我很难以一种很好的方式构建我的答案,但这里仍然试图解释正在发生的事情:

你会得到一个编译错误,因为extends子句需要类和特征,而不是类型,并且您给出一个类型。类和特征不得与类型混淆。

对此肯定有更好的解释。但基本上,类型指定了可应用于某些内容(有时还应用于其他属性)的操作。类和特征定义了behavior他们的实例。

在大多数静态类型的面向对象语言中,每个类/接口/特征也有一个关联的type。然而,倒数通常不是真的:并非所有类型都有相应的类/接口/特征。例如,您的C with T是一种类型,但不是类,也不是特征(甚至不是它们的组合)。

The extends子句需要类和特征(用分隔符分隔)with),但不是一种类型。这是因为extends意思是:延长behavior这件事的。正如我所说,类型不定义行为。

在大多数地方,语法A with B代表一个type这是两种类型的子类型A和类型B。在里面extends然而,条款with具有不同的含义,只是充当参数的分隔符extends(很像,充当方法调用参数的分隔符)。

如果你写class X extends C with T,它会起作用,因为这意味着class X extends C, T, 如果你想。

HTH

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

为什么是“特质T”? C级; class X extends (C with T)` 无法编译? 的相关文章

  • 在 Haskell 中对单位的组成(例如英寸、美元等)进行建模

    跟进自我之前的一个问题 https stackoverflow com q 73375273 222529 我问如何创建一个可以对单元进行建模的类型 例如Inch 作为 Haskell 中的一种类型 我现在面临的问题是如何对该单元和其他单元
  • Spark Collect_list 并限制结果列表

    我有以下格式的数据框 name merged key1 internalKey1 value1 key1 internalKey2 value2 key2 internalKey3 value3 我想做的是将数据框分组name 收集列表并l
  • 在 Scala 中生成数字的质因数

    如何在 Scala 中生成整数的因子 这是我的看法1 def factorize x Int List Int def foo x Int a Int List Int if a gt Math pow x 0 5 return List
  • 将 Scala 文件转换为 Dll

    我有一些使用 IntelliJ 和 SBT Plugin 编写的 scala 代码 并希望将代码作为 C 的 DLL 提供给我 我已经尝试使用 ikvmc 我通过 package 将所有类打包在一个罐子中 之后 我手动设置一个 jar 其中
  • 写入 Delta 表时检测到架构不匹配 - Azure Databricks

    我尝试将 small radio json json 加载到 Delta Lake 表 在此代码之后我将创建表 我尝试创建 Delta 表 但收到错误 写入 Delta 表时检测到架构不匹配 可能与分区有关events write form
  • 为什么调用 take() 方法时 Slick 会生成子查询

    I use Slick http slick typesafe com 1 0 0 RC1 我对表对象有这样的定义 object ProductTable extends Table Int String String String Dou
  • Spark:用列的平均值替换数据框中的空值

    如何创建 UDF 以编程方式将每列中 Spark 数据框中的空值替换为列平均值 例如 在示例中 数据 col1 空值的值为 2 4 6 8 5 5 5 示例数据 col1 col2 col3 2 null 3 4 3 3 6 5 null
  • IntelliJ IDEA Scala 插件问题

    我对新的 Intellij IDEA 10 和 Scala 插件有疑问 当我在 Scala 源文件中输入任何内容时 编辑器会永久冻结 在其他文件 java 和其他 编辑器中效果很好 结构视图 scala 检查和显示成员功能已关闭 堆大小增加
  • 如何检查字符串中是否包含某个字符?

    我想检查字符串是否包含该字符 我正在编写一个刽子手代码 例如 下面是要猜测的单词 scala 但看起来像 至用户 假设用户输入字母 a 那么它一定看起来像 a a def checkGuess if result contains user
  • Scala 性能问题

    In the 丹尼尔 科泽夸 Daniel Korzekwa 撰写的文章 http blog danmachine com 2011 01 moving from java to scala one year html 他说以下代码的性能
  • 新式(“内联”)宏需要 scala.meta

    我刚刚更新到 scala meta 2 0 0 M1 和最新的 scala 2 12 3 现在宏不再编译 我所做的唯一更改是将元版本从 1 8 0 更改为 2 0 0 M1 错误 新式 内联 宏需要 scala meta 有谁知道是否有快速
  • scala/spark 代码不允许在 hive 中添加列

    如果源数据有新列 我尝试在 Hive 表中添加一列 所有新列的检测都运行良好 但是 当我尝试将列添加到目标表时 我收到此错误 for f lt df schema fields if f name chk spark sqlContext
  • 如何使用 apply/unapply 方法重现案例类行为?

    我尝试用普通类和伴生对象替换案例类 但突然出现类型错误 编译良好的代码 综合示例 trait Elem A B def C other Elem C A Elem C B other match case Chain head tail g
  • 将 Scala 库转换为 DLL (.NET)

    我正在尝试从 scala 类创建一个 Dll 我将 IntelliJ 与 SBT 一起使用 我已经找到了一种使用 ikvm converter 将 jar 文件转换为 Dll 的方法 现在的问题是 当我在 SBT 下使用 package 从
  • 逆变方法参数类型

    wiki 逆变方法参数类型 https en wikipedia org wiki Covariance and contravariance 28computer science 29 Contravariant method argum
  • 宏:knownDirectSubclasses 被嵌套类型破坏?

    我有一个宏 它枚举密封特征的直接子类型 import scala reflect macros Context import language experimental macros object Checker def apply A U
  • 使用原始类型模拟案例类

    考虑以下类型结构 trait HasId T def id T case class Entity id Long extends HasId Long 比方说 我们想在一些测试中模拟实体类 val entityMock mock Enti
  • 使用 Akka 玩 2.5 - 找不到参数超时的隐式值:akka.util.Timeout

    我正在尝试使用 Play 2 5 测试 Akka 但遇到了一个似乎无法解决的编译错误 我正在关注 Play 文档中的此页面 https playframework com documentation 2 5 x ScalaAkka http
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • 错误:协变类型 A 出现在逆变位置

    我试图写一个不可变的Matrix A 班级 我希望该类是协变的A但是当我把 在 前面A编译器开始抱怨类中的某些操作 以下是我的相关子集Matrix类 实际类比以下子集大 5 倍左右 class Matrix A private val co

随机推荐

  • bat 文件脚本检查字符串是否包含其他字符串

    我需要编写一个批处理文件来检查变量是否包含特定值 我尝试执行以下操作 If a a pattern echo Yes else echo No 输入示例 a 鲍勃 宾森 pattern 宾森 我从来没有打印过 是 谁能告诉我我错过了什么 或
  • 有效计算笛卡尔积中总和高于特定数字的集合

    我有以下可以运行的 Python 3 代码 import itertools loops 10 results 4 2 75 2 75 1 5 1 5 1 5 0 threshold loops 2 cartesian product it
  • PHP/PDO/MSSQL如何获取错误信息?

    我做了很多搜索 但找不到任何关于我的问题的信息 我在用着PDO带司机PDO DBLIB访问 MS SQL 数据库 我通常使用准备好的语句 但如果任何查询失败 我不会获得有关该错误的任何其他信息 除了 General SQL Server e
  • MySQL SELECT INTO 等效吗?

    在 SQL Server 中 我可以使用以下命令将表或临时表复制到新表 SELECT INTO syntax 有人知道如何在 MySQL 中执行相同的操作吗 See 创建表 作为选择 http dev mysql com doc refma
  • 按行数设置 TableView 高度

    我有TableView in the MainstoryBoard并且行数每次都是随机的 我想要整体的高度TableView灵活 我的意思是 例如 如果我有 4 行TableView和每个TableView行高是 22 所以TableVie
  • 为什么 JSON.parse 会抛出跨域错误?

    如果没有 JSON parse 以下代码可以正常工作 如果我尝试解析或字符串化我的数据对象 我会收到跨源错误 为什么会发生这种情况以及如何解决它 我在 Title js 中有以下代码 const name show title JSON p
  • EF 6 参数嗅探

    我有一个动态查询太大 无法放在这里 可以肯定地说 在其当前形式中 它利用 CLR 过程根据传递的搜索参数数量动态构建联接 然后获取该结果并将其联接到更详细的表中 以带回对最终用户重要的属性 我已将整个查询转换为 LINQ to Entiti
  • Java - 创建内部时钟

    我希望计算从Java中的特定时间开始经过的时间 以毫秒为单位 经典的使用方式System currentTimeMillis 作为开始时间 然后再次将其与前一个时间一起使用来获取经过的时间 我希望做类似的事情 但不依赖系统时间 如果我依赖系
  • 如何测试 Aural 样式表/CSS3 语音?

    我正在窥探网站代码并注意到他们使用 media aural 这让我想起了它的存在 所以 我想我会玩玩 但后来意识到我不知道如何测试它们 我不希望我的网站听起来像施瓦辛格一家在吃圣诞晚餐 如何通过浏览器测试听觉或语音以确保听起来没问题 听觉和
  • 为什么我们需要 ASP .NET 5 wwwroot 中的 web.config?

    在 ASP NET 5 中 配置 http aspnetmvc readthedocs org projects mvc en latest migration migratingconfig html正在发生巨大的变化 我们不再有web
  • 如何将表格放入帮助模式?

    我正在尝试将 Delphi 2010 中的表单置于 帮助模式 中 我有一个用户单击的按钮 我希望光标更改为帮助光标 然后当用户单击控件时 显示控件的帮助 我可以发送窗口消息吗 Send a WM SYSCOMMAND http msdn m
  • 更新到 Android Studio 3.5 版本后出现的新问题。运行应用程序时不会出现 ADB 设备选择屏幕 (SHIFT-F10) [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 新问题 在 Android Studio 3 5 上运行应用程序时 不再出现设备选择屏幕 它默认为 随机 设备 尝试在谷歌上寻找答案 不去
  • BadZipFile:通过导入 keras 文件不是 zip

    当我运行这段代码时 我得到以下结果error https i stack imgur com YJbTE png 我尝试过不同的技术来解决这个问题 但没有成功 我可以请求有人可以帮助我解决这个问题吗 对于同一问题有一些解决方案 但我无法得到
  • 什么是 pycryptodomex?它与 pycryptodome 有什么不同?

    今天我看到 PySNMP 安装 pycryptodomex 这x这个名字看起来既可疑又令人惊讶 我试图追踪它 但看起来两者都是密码球 https pypi org project pycryptodome and pycryptodox h
  • 为什么Intellij IDEA说已使用的属性未使用?

    我的 Java Maven 项目中有一个属性文件 我有一个类加载这些属性并将它们存储为常量 Constants java file has this code Properties properties new Properties bla
  • 测试假存储库有什么意义?

    当我在家开发时 我一直在努力让自己的心态更加面向 TDD 和一点 DDD 我不明白的一件事是为什么你要创建一个假存储库来测试 我还没有真正研究过它 但测试的想法肯定是帮助解耦你的代码 给你更多的灵活性 减少所需的代码并减少错误的数量 那么有
  • 从数据库中选择、分组和求和结果

    我有一个数据库 其中有一些我想求和的字段 但这不是大问题 我想按这些字段的创建月份对它们进行分组 ActiveRecord 自动创建一个名为 created at 的字段 所以我的问题是 如何按月对结果进行分组 然后对每个月的字段求和 更新
  • Android 应用程序中的布局充气器是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 Android 中的 Layout Inflater 是做什么的 https stackoverflow com questions 3477422 what does layout inflater
  • 检查文件扩展名是否为图像的好方法

    我有这个文件类型过滤器 public const string Png PNG Portable Network Graphics png png public const string Jpg JPEG File Interchange
  • 为什么是“特质T”? C级; class X extends (C with T)` 无法编译?

    斯卡拉代码 trait T class C type W C with T class X extends W W是一个类型别名 但我想定义一个类来扩展它 为什么以及如何解决它 我很难以一种很好的方式构建我的答案 但这里仍然试图解释正在发生