Scala中的类型不匹配(hasNext函数)

时间:2017-03-22 05:21:35

标签: scala

我在' while(blocks.hasNext)'中存在类型不匹配的问题。功能

def encrypt(file: String): Array[Byte] = { 

    val text = Source.fromFile(file)
    val list=text.toList    
    val blocks=list.grouped(501)

    while(blocks.hasNext) {
          val block0=blocks.next()    
          val stringBlock=block0.mkString
          val arrayBytes=stringBlock.getBytes
    }
}

错误表示"类型不匹配;找到:单位,必需:数组[字节]"。问题在哪里?

2 个答案:

答案 0 :(得分:1)

您没有将任何存储数据的内容返回到变量中试试这个

def encrypt(file: String): Array[Byte] = { 
    val text = Source.fromFile(file)
    val list=text.toList
    val blocks=list.grouped(501).toArray
blocks.flatMap{block0 =>
       val stringBlock=block0.mkString
       stringBlock.getBytes
      }
}

现在flatMap会将结果返回为Array[Byte]类型

希望这适合你

答案 1 :(得分:0)

将while循环更改为:

blocks.flatMap(_.mkString.getBytes).toArray