Scala 中抽象特征的语义

2023-12-23

我想知道使用的语义是什么abstract关键字与 a 组合trait is.

如果该特征没有定义任何抽象方法,则abstract关键字不会阻止我创建实例:

scala> abstract trait T
defined trait T

scala> new T{}
res0: java.lang.Object with T = $anon$1@12cd927d

另一方面,如果该特征确实定义了一个抽象方法,我就无法创建一个实例(当然不实现这个方法),无论abstract关键字是否存在:

scala> abstract trait T { def foo : Unit }
defined trait T

scala> new T{}
<console>:9: error: object creation impossible, since method foo in trait T of type =>    Unit is not defined
              new T{}
                  ^

scala> trait T { def foo : Unit }
defined trait T

scala> new T{}
<console>:9: error: object creation impossible, since method foo in trait T of type =>     Unit is not defined
              new T{}
                  ^

那么什么是abstracta 前面的关键字trait有什么好处?


它没有任何效果,特征会自动抽象。

抽象修饰符用于类定义中。这是多余的 对于特征,对于所有其他不完整的类都是强制性的 成员。

http://www.scala-lang.org/docu/files/ScalaReference.pdf http://www.scala-lang.org/docu/files/ScalaReference.pdf

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

Scala 中抽象特征的语义 的相关文章

  • scala.concurrent.blocking - 它实际上做了什么?

    我花了一段时间学习 Scala 执行上下文 底层线程模型和并发性的主题 你能解释一下通过什么方式吗scala concurrent blocking 调整运行时行为 and 可以提高性能或避免死锁 如中所述scaladoc http www
  • 对列表中的相邻元素进行分组

    假设我想编写一个函数来执行此操作 输入 1 1 3 3 4 2 2 5 6 6 输出 1 1 3 3 4 2 2 5 6 6 它将相同的相邻元素分组 这个方法的名称应该是什么 此操作有标准名称吗 In 1 1 3 3 4 2 2 5 6 6
  • 如何使用 `ProjectRef` 来引用 sbt 1.x 中的本地项目?

    其他答案中有很多含糊不清的内容 或者涉及到更旧版本的 sbt 即 0 12 x 但似乎没有人真正回答这个问题 鉴于我有一个文件夹 并且我已经运行 sbt new scala scala seed g8 name Scala Seed Pro
  • 如何通过 Scala REPL 使用第三方库?

    我已经下载了Algebird我想尝试一些事情Scala 解释器使用这个库 我该如何实现这一目标 当然 您可以使用 scala cp 无论如何并手动管理您的依赖项 但这变得非常乏味 尤其是当您有多个依赖项时 更灵活的方法是使用sbt http
  • 在 Play 2 模板中格式化双精度的正确方法是什么

    这是我的 Play 2 模板的缩写代码 variable com mypackage Variable div class statsbody div class statsform div div
  • 在 scala 中保留推导的更高类型

    我有一个高阶类型 并致力于用它构建一些 DSL 我正在寻找一种方法来定义可以接受类型而无需显式指定此类型的函数 自我描述示例 class Wrap T val data T class DSL def doSomething T x Wra
  • Scala 'null' 是否算作另一种类型的实例?

    我有这个代码 class MyLinkedList T h T tail MyLinkedList T def prepend v T MyLinkedList T new MyLinkedList v this 我想知道我如何可以将第二个
  • 手动排除sbt中的一些测试类

    我通常在 CI 中执行以下命令 清理更新编译测试发布 但是 我想从 sbt 命令行中排除 1 个 或几个 测试类 我怎样才能做到这一点 我不想更改我的代码以使用忽略等 两种可能的选择 test only See http www scala
  • Scala Sparkcollect_list() 与 array()

    有什么区别collect list and array 在 Spark 中使用 scala 我看到到处都有使用情况 但我不清楚用例来确定差异 尽管两者array https spark apache org docs latest api
  • Play框架:读取包含空值的Json

    我正在尝试在 Play Scala 程序中读取 Json 数据 Json 的某些字段可能包含空值 因此我定义 Reads 对象的方式如下 implicit val readObj Reads ApplyRequest JsPath a re
  • Scala 警告、IntelliJ 和编译器标志

    我目前正在试用 IntelliJ Scala 插件 有件事让我有点烦恼 编译时我收到 3 个警告 Warning scala Recompiling 4 files Warning scala Warning scala there wer
  • 如何向数据框spark添加标题和列?

    我有一个数据框 我想在其中添加标题和第一列 手动 这是数据框 import org apache spark sql SparkSession val spark SparkSession builder master local appN
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • Scala 将递归有界类型参数(F 界)转换为类型成员

    我将如何转换 trait Foo A lt Foo A 给类型成员 也就是说 我想要以下内容 trait Foo type A lt Foo type A 但我遇到了困难 因为名称 A 已在类型细化中使用 这个问题是类似的 并衍生自 通过类
  • 按元素聚合数组

    Spark scala 相当新 我想知道是否有一种简单的方法以按列方式聚合 Array Double 这是一个例子 c1 c2 c3 1 1 1 0 1 0 3 4 1 2 1 0 0 0 4 3 2 1 0 0 0 0 0 0 2 3 1
  • 承诺的反面是什么?

    承诺代表将来可能可用 或无法实现 的值 我正在寻找的是一种数据类型 它表示将来可能变得不可用的可用值 可能是由于错误 Promise a b TransitionFromTo
  • 需要澄清令人困惑的 Http4s 消息类型 `Response[F]` / `Request[F]`

    我很难理解为什么Request and Response参数化为F 类似的东西是猫效应数据类型资源 从文档中 https typelevel org cats effect docs std resource https typelevel
  • Map 和 Set 的实际类(不是抽象类,也不是特征类)是什么?

    在 Scala 中 映射和集合文字可以通过以下方式创建 val m Map 1 gt a 以及引用的类型m字面意思都是Map Int String 然而 scala文档表明Map实际上是一个特征 具有需要实现才能实例化的抽象成员 scala
  • Spark scala:大量列上的简单 UDF 会导致性能下降

    我有一个包含 1 亿行和约 10 000 列的数据框 这些列有两种类型 标准 C i 和动态 X i 这个dataframe是经过一些处理后得到的 性能很快 现在只剩下2步了 Goal 需要使用 C i 列的相同子集对每个 X i 执行特定
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co

随机推荐

  • 使用 sqlmodel 在 fastapi 中深度嵌套响应模型

    我想在这里重复一下之前的内容question https stackoverflow com questions 74719687 getting joined tables from sqlmodel as a nested respon
  • 将静态库链接到其他静态库

    我有一小段代码依赖于许多静态库 a 1 a n 我想将该代码打包在静态库中并使其可供其他人使用 我的静态库 我们称之为 X 编译得很好 我创建了一个简单的示例程序 它使用 X 中的函数 但是当我尝试将其链接到 X 时 我收到许多关于缺少库
  • 在 Unity3d 中打开 iPhone 和 Android 设备相机

    我正在开发一个应用程序 需要在全视图中打开设备摄像头 并且我正在为 iOS 和 Android 制作这个应用程序 那么谁能告诉我如何在 Unity 中为所有 Android 和 iPhone 设备打开全屏设备摄像头 这对我来说会有很大的帮助
  • 选择另一个选项卡时的 popToRootViewController

    Context 我同时使用 TabViewController 和 NavigationController 这两个选项卡是RECENT and POPULAR他们会显示帖子列表 想象你在里面RECENT选项卡并单击帖子 您将进入posts
  • 是否可以设置现有 Azure blob 的内容处置?

    基于刺激在这里的答案 Azure 存储 API 内容配置 https stackoverflow com questions 20719641 azure storage api contentdisposition 以及在这里找到的信息
  • 如何使用 PendingIntent 从服务到客户端/活动进行通信?

    我一直在 Android 开发者网站上阅读以下文本 特别是在框架主题 gt 服务 gt 启动服务 http developer android com guide topics fundamentals services html Star
  • if else 在mysql中查询

    我需要 mysql 查询中嵌套 if else 条件的示例 您还可以将 case 语句用于 if else 条件 SELECT CASE field1 WHEN A THEN value is A WHEN B THEN value is
  • 为什么“splatting”关键字参数时 ** 是可选的?

    鉴于此方法定义 def foo a nil b nil p a a b b end 当我使用单个哈希参数调用该方法时 哈希总是隐式转换为关键字参数 无论 hash b 1 foo hash gt a gt nil b gt 1 foo ha
  • 在 Typescript 中创建 `toFunc` 泛型方法?

    我有一个 Ts 模型 需要填充一些属性 当前的代码简化是 var claimSummaryDetails Name this store selectSync currentUser Result Family find m gt m Me
  • 上传资源文件时,createBlockOutputStream 中 Spark HDFS 异常

    我正在尝试在集群中运行我的 JARyarn cluster但一段时间后我遇到了例外 最后INFO在失败之前是Uploading resource 我已经检查了所有安全组 确实如此hsdf ls成功但仍然收到错误 bin spark subm
  • Mapbox 与 Angular 6.“找不到地图容器”错误

    我正在开发我的第一个角度网络应用程序 我想介绍一些类似于谷歌地图的东西 由于新的计费策略 我不想使用最后一个 所以我尝试了 MapBox 按照教程 我成功创建了我需要的地图 问题是 我不知道如何在角度分量上显示它 我为地图生成了这个文件 并
  • 此上下文中仅支持原始类型或枚举类型

    我已经看到了很多关于这个主题的问题 但我无法对其中任何一个真正解决我所看到的问题进行排序 我有一个活动实体 用于跟踪分配给哪个员工以及哪个员工创建了记录并更新了记录 如果我删除 where a AssignedEmployee curren
  • PHP获取外部页面内容

    我从另一个网站获取 htmlfile get contens 我的问题是如何获得特定的标签值 假设我有 div p class paragraph 1800 p div 我怎样才能获得段落的值 谢谢 如果这个例子真的那么简单 你可以只使用正
  • 如何从 java 客户端正确使用 Prometheus Histogram 来跟踪大小而不是延迟?

    我有一个处理集合的 API 该API的执行时间与集合大小有关 集合越大 花费的时间就越多 我正在研究如何使用普罗米修斯做到这一点 但不确定我是否正确地做事 该领域的文档有点缺乏 我做的第一件事是定义一个摘要指标来衡量 API 的执行时间 我
  • 获取“单例类型”的类型

    我们可以通过 Shapeless 创建文字类型 import shapeless syntax singleton var x 42 narrow x Int 42 42 但我该如何操作Int 42 如果甚至不可能创建类型别名 则作为类型
  • python 中的纯文本格式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个用 python 创建
  • iOS 如何让 MapKit 显示自定义室内地图?

    我正在尝试创建我正在工作的办公室的地图 我有一个高分辨率图像 并且希望将其自动旋转到用户前进的方向 从而允许用户在地图上导航 我认为这可以使用 CoreMotion CoreLocation 和 UIScrollView 来完成 但这似乎涉
  • 错误:字符串类型的值没有成员 ComponentsSeparatedByCharactersInSet

    以下代码引发以下错误 字符串类型的值没有成员组件ComponentSeparatedByCharactersInSet 此代码来自另一个项目 该项目之前在 swift 版本 1 或 2 中有效 但不再有效 import Foundation
  • C++/STL 是否支持按属性对对象进行排序?

    我想知道STL是否支持这一点 假设我有一堂这样的课 class Person public int getAge const double getIncome const 和一个向量 vector
  • Scala 中抽象特征的语义

    我想知道使用的语义是什么abstract关键字与 a 组合trait is 如果该特征没有定义任何抽象方法 则abstract关键字不会阻止我创建实例 scala gt abstract trait T defined trait T sc