当前位置: 首页 > 知识库问答 >
问题:

scala-while循环:带有`+=`的增量类型不匹配错误(found:Unit,required:Int)

严安志
2023-03-14
def merge(index: Int): Unit = {
    val len: Int = master.length + div(index).length
    var res = Array.ofDim[Long](len)
    var sign = Array.ofDim[Boolean](len)
    var i: Int = 0
    var j: Int = 0
    var resi: Int = 0
    while (i < master.length || j < div(index).length) {
      if (i == master.length) {
        res(resi) = div(index)(j)
        sign(resi += 1) = parity(index)(j += 1)
      }
      else if (j == div(index).length) {
        res(resi) = master(i)
        sign(resi += 1) = masterp(i += 1)
      }
      else if (master(i) < div(index)(j)) {
        res(resi) = master(i)
        sign(resi += 1) = masterp(i += 1)
      }
      else {
        res(resi) = div(index)(j)
        sign(resi += 1) = parity(index)(j += 1)
      }
    master = res
    masterp = sign
    }
  }
var j: Int = i
while (j >= 0) {
  div(index)(j + 1) = master(j) * p
  parity(index)(j + 1) = !masterp(j)
  j -= 1
}

提前感谢!

共有1个答案

蔺山
2023-03-14

表达式x+=1返回一个单元,但这不是您所希望的。

如果要在x递增后返回,请使用

{ x += 1; x }

如在

sign({ resi += 1; resi }) = parity(index)({ j += 1; j })
 类似资料:
  • Scala 循环 只要给定的条件为 true,Scala 语言中的 while 循环语句会重复执行循环体内的代码块。 语法 Scala 语言中 while 循环的语法: while(condition) { statement(s); } 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。 condition 可以是任意的表达式,当为任意非零值时都为

  • Scala 循环 不像 while 循环在循环头部测试循环条件, Scala 语言中,do...while 循环是在循环的尾部检查它的条件。 do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。 语法 Scala 语言中 while 循环的语法: do { statement(s); } while( condition ); 流程

  • 问题内容: 我试图在Swift中使用JSONDecoder将JSON转换为Structs,所以我编写了所有Structs,将它们修改了几个小时,但它仍然给我这个错误。我不知道是否有办法查看给出此信息的行。我将在下面发布我的struct,并在其后发布Json File链接。 完整的错误描述是: typeMismatch(Swift.Dictionary ,Swift.DecodingError.Co

  • 如何在Swift3中编写以下内容? 这是我自己的尝试

  • 问题内容: 我正在创建单词表示该句子的包。然后将句子中存在的单词与文件“ vectors.txt”进行比较,以获取其嵌入矢量。在获取句子中每个单词的向量之后,我将句子中单词的向量取平均值。这是我的代码: 不知道为什么,但是我得到这个错误: PS嵌入向量如下所示: 使用np.sum后,出现此错误: 问题答案: 您有一个numpy的字符串数组,而不是浮点数。这就是一个小端编码的unicode字符串,最

  • 我有以下具有以下方法的类。 GsonHelper为我提供了一些 在Java 7之前,我一直使用这种方法,例如: 这工作得很好。因为这个方法会返回一个布尔值,我可以在“if”中使用它。但是当我换到Java 8时,这就不可能了。编译器抱怨: 类型不匹配:无法从对象转换为布尔值 我知道java.lang.Boolean可以为空。我可以通过以下方式解决这个问题: 但我很好奇,为什么这在Java 7中有效,

  • 我对Scala很陌生,请耐心等待。我有一堆包裹在一个大数组中的期货。期货已经完成了他们的辛勤工作,查看了一些TB的数据,在我的应用程序结束时,我想总结所有的结果,这样我就可以很好地展示它们。 我拥有的期货集合属于以下类型: 到目前为止,我读到的所有关于理解的东西都表明 导致 按照同样的逻辑,我的意图是这样做,因为我最近发现选项,尝试,失败和成功可以被视为集合: 但这不一定行得通。我似乎收到了以下编

  • 我遇到了一个关于Scala和多种未来收益的问题。f1和f2都是期货。f2期货基于从f1期货获得的值。 根据 f1 的结果,我要么在 if 语句计算结果为 false 时执行 Lookup(),要么返回 LookupResult),要么模仿默认的 LookupResult。 返回以下错误: 类型不匹配。必需:选项[B_],找到:Future[(MyNode,Any)] 我只是没有正确映射结果吗?例如