在 for 循环和条件语句中添加到 scala 映射

2023-12-21

我收到一条错误消息“错误:类型参数 [Any] 不符合特征 Cloneable 的类型参数边界 [+A <: anyref>

具体来说,

var M = mutable.Map[Int, mutable.Set[Int]]()
for(i <- 1 to 100; j <- 1 to 100) {
    if(!M.contains(i)) {M += i -> mutable.Set[Int](j)}
    else {M(i) += j} 
}

(我实际上正在尝试更复杂的东西,但这是错误生成代码的调整和简化到最低限度)

上述代码的最后一行生成错误消息。如果我进一步剥离它

for(i <- 1 to 100; j <- 1 to 100) {
    if(!M.contains(i)) {M += i -> mutable.Set[Int](j)}
}

有用!

我如何使上面的代码工作?


Digal 诊断了这个问题(未能统一 if-else 分支的类型),看起来像是一个编译器错误。这是一个进一步简化的情况,在经过漫长的编译时间后,它将在 REPL 中给出错误,

if (true) {
  null: collection.mutable.Map[Int, Int]
} else {
  null: collection.mutable.Set[Int]
}

同时,您可以使用 if-else 语句中某处的显式类型来编译代码,

for(i <- 1 to 100; j <- 1 to 100) {
  if(!M.contains(i)) {M += i -> mutable.Set[Int](j)}
  else {M(i) += j}: Unit 
}

我在这里提出了一个问题:https://issues.scala-lang.org/browse/SI-4938 https://issues.scala-lang.org/browse/SI-4938

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

在 for 循环和条件语句中添加到 scala 映射 的相关文章

  • e:B, f:(B,A)=>B) : B 是什么意思

    我对这意味着什么感到困惑 我理解柯里化 但我似乎无法完全阅读代码 def foldLeft A B xs List A e B f B A gt B B 只是几个建议 顺便说一句 里面没有柯里化 def foldLeft A B xs Li
  • Scala 中使用转义特殊字符解码字符串问题

    我有一个多行 JSON 文件 其中包含编码为十六进制的特殊字符的记录 以下是单个 JSON 记录的示例 x22value x22 x22 xC4 xB1arines Bint xC4 xB1 xC3 xA7 Ramu xC3 xA7lar
  • 如何在 Akka Stream 中记录流量?

    我有一个带有单个流 图的 Akka Stream 应用程序 我想测量源头的流量并每 5 秒记录一次 例如 在过去 5 秒内收到 3 条消息 我尝试过 someOtherFlow groupedWithin Integer MAX VALUE
  • scala.collection.breakOut 与视图

    这个答案 https stackoverflow com a 1716558 936869描述如何scala collection breakOut可用于防止创建浪费的中间集合 例如 这里我们创建一个中间体Seq String String
  • 为什么调用 take() 方法时 Slick 会生成子查询

    I use Slick http slick typesafe com 1 0 0 RC1 我对表对象有这样的定义 object ProductTable extends Table Int String String String Dou
  • Scala 组合器解析器 - 区分数字字符串和变量字符串

    我正在做 Cay Horstmann 的组合器解析器练习 我想知道区分代表数字的字符串和代表匹配语句中变量的字符串的最佳方法 def factor Parser ExprTree wholeNumber expr ident case a
  • IntelliJ IDEA Scala 插件问题

    我对新的 Intellij IDEA 10 和 Scala 插件有疑问 当我在 Scala 源文件中输入任何内容时 编辑器会永久冻结 在其他文件 java 和其他 编辑器中效果很好 结构视图 scala 检查和显示成员功能已关闭 堆大小增加
  • 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 有谁知道是否有快速
  • 如何使用 apply/unapply 方法重现案例类行为?

    我尝试用普通类和伴生对象替换案例类 但突然出现类型错误 编译良好的代码 综合示例 trait Elem A B def C other Elem C A Elem C B other match case Chain head tail g
  • Java / Scala Future 由回调驱动

    简洁版本 我怎样才能创建一个Promise
  • Scala 集合不一致

    为什么 Scala Collections API 中的集合和列表之间缺乏一致性 例如 有不可变的 Set 但也有可变的 Set 如果我想使用后者 我可以简单地这样做 val set Set A set new A 但是 本身不存在可变列表
  • Scala 中值类的隐式 Json 格式化程序

    我有许多值类组成了一个更大的对象案例类 final case class TopLevel foo Foo bar Bar final case class Foo foo String extends AnyVal final case
  • Scala 相当于 Java 的 Number

    我正在尝试为数值域类型构建类型层次结构 例如AYear is an Int 这是一个Number a Percentage is a Double 这是一个Number等等 我需要层次结构以便我可以调用toInt or toDouble关于
  • 使用 Akka 玩 2.5 - 找不到参数超时的隐式值:akka.util.Timeout

    我正在尝试使用 Play 2 5 测试 Akka 但遇到了一个似乎无法解决的编译错误 我正在关注 Play 文档中的此页面 https playframework com documentation 2 5 x ScalaAkka http
  • Source.getLines 中的默认参数错误 (Scala 2.8.0 RC1)

    假设我运行 Scala 2 8 0 RC1 以下 scala 代码应该打印出文件 c hello txt 的内容 for line lt Source fromPath c hello txt getLines println line 但
  • 通用特征的隐式转换

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

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

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 错误:协变类型 A 出现在逆变位置

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

随机推荐

  • 如何向 text_field_tag 添加占位符?

    我的表格中有以下行 text field tag mother name nil id mother name autocomplete class form group form control autocomplete off data
  • 使用fstream写入

    我试图在指定文件中查找一行并将其替换为我的行 我无法访问将要运行该程序的计算机上的库 因此我创建了一个自定义文件 问题似乎是对 fstream 对象的写入调用 我想知道你们中是否有人可以提供帮助 另外 我的 getline 循环在到达文件末
  • Python Selenium 将数据存储到 CSV 中的特定列?

    我有两份印刷品想写到一张CSV文件存入列A和列B 我的问题是 当我在最后打印 第一次和第二次打印 时 我只得到一个元素 我猜是多次 因为它不在循环之内 print text link 0 9 Result LMFCIIC PWFERT BK
  • 资源泄漏和内存泄漏与性能之间的关系

    对于资源泄漏 我指的是 Streams StreamWriter 我想它们正在消耗文件描述符 Handles GDI 或用户图形字体 很快所有 Closable 对象都可以算作资源 如果应用程序存在一些资源泄漏 假设某些输入流没有关闭 它们
  • 如何在 Zend 框架的 ini 文件中编写路由链……的链?

    我正在尝试使用 Zend 框架的 INI 文件定义如下路由 http api example com servicename http api example com servicename 版本 users userid items it
  • 如何在没有后端的情况下保存用户输入

    我刚刚学习 JavaScript 和 Web 开发 我想知道我想做的事情是否可能 我想编写一个 JavaScript 测验来保存用户输入的答案 而不需要后端 这可能吗 如果不可能 我能做到这一点的最简单和最容易的方法是什么 谢谢 PS 如果
  • 如何将 X11 键符号映射到 Unicode 字符?

    X11 将键码映射到键符号 然后将键符号映射到 Unicode 在程序中检索键符号到 Unicode 映射的好方法是什么 Try this http www cl cam ac uk mgk25 ucs keysym2ucs c
  • 通用 git 重置为默认上游 HEAD

    是否有语法可以重置为当前分支的默认上游 HEAD 就像是 git checkout mybranch git reset hard origin mybranch where origin mybranch可以通用当前分支的上游 HEAD
  • Windows - 无法启动 Git:可能 Git 可执行文件的路径无效

    Can t start Git C Users Cloudion PC AppData Local GitHub PortableGit d93ee8917cfa9add886773e6be9ec08609a502b6 bin git ex
  • 是否有任何理由在 Maven 中为我自己的传递依赖项保留显式依赖项声明?

    我已经阅读了一段时间有关 Maven 中的显式依赖声明与传递 隐式 依赖声明的内容 大多数人倾向于同意您应该始终显式声明项目所依赖的库 主要是为了避免版本不匹配 这是完全合理的 但是我们应该如何解决我们的内部依赖性 如果可以通过传递机制解决
  • 在纯文本 div 中插入新行

    我正在使用一个 CMS 它只允许特定 div 中的文本 HTML 例如 br 被解析为 lt br gt 对于 Unicode HTML 代码 例如 amp 会产生 and x00040 会产生 但它似乎不允许换行 回车 我怎样才能把一个
  • PyBind11 析构函数未调用?

    我有一个c 类包裹着PyBind11 问题是 当Python脚本结束c destructor不会被自动调用 这会导致不整齐的退出 因为网络资源需要由析构函数释放 作为解决方法 有必要显式删除Python反对 但我不明白为什么 请有人解释一下
  • 文本环绕段落中居中的图像

    例如 text text text text text text text text text text text text text text text text text text text text text text text te
  • 用汇编语言将 2 个数字相加并打印结果

    我需要有关如何添加两个数字然后打印结果的帮助 这是我的代码 MODEL SMALL STACK 200H DATA NUM1 DB 12 NUM2 DB 3 VAL DB MSG1 DB The sum is CODE BEGIN PROC
  • 如何在执行之前打印每个命令? [复制]

    这个问题在这里已经有答案了 设置在执行之前打印每个命令的 Bash 脚本的最佳方法是什么 这对于调试目的来说非常有用 我已经尝试过这个 CMD my command params gt stdout txt 2 gt stderr txt
  • 更改vue路由器路由而不更改URL

    在我的前端中 我想将用户重定向到错误视图 以防初始化出错 为此 我准备了一个可以通过特定路径调用的特殊错误视图 为了改善用户体验 我不想将 url 替换为类似的内容 error 但我还是想利用vue router 您知道如何实现这一目标吗
  • 如何在预览中构建带有注释的 swiftui 类 mainactor

    所以 我有一个名为设置的类 我在所有地方都使用它 并且特别希望其他视图在内容更改时做出反应 我用 MainActor 注释了它 当运行应用程序时 一切正常 但是 在预览中我只是尝试创建一个实例 struct ContentView Prev
  • 如何在 stackNavigator 屏幕内水平滑动?

    我正在尝试在同一屏幕的不同屏幕之间创建滑动导航StackNavigator 当我设定swipeEnabled true in navigationOptions 我的应用程序宁愿在不同的选项卡之间导航 我宁愿想在同一个堆栈中导航Screen
  • 重新排列数据框中的行

    我在 R 中有一个数据框 如下所示 有两列 ID phone number Mark 866458 Paul 986564 Jack 987543 Mary 523422 我想要这种只有一列的输出 Mark 866458 Paul 9865
  • 在 for 循环和条件语句中添加到 scala 映射

    我收到一条错误消息 错误 类型参数 Any 不符合特征 Cloneable 的类型参数边界 A 具体来说 var M mutable Map Int mutable Set Int for i lt 1 to 100 j lt 1 to 1