Scala 使用flatMap设置增量

Scala 使用flatMap设置增量,scala,Scala,我有一个可变的集合,并从输入中给它赋值 var set=scala.collection.mutable.set[Int]() set++=(in.readLine().split(“”.map(u.toInt)) 输入: 15 实际输出: 1,5 所需输出: 1,2,3,4,5 如果使用了带条件的平面图,但出现了错误。如何使用flatMap实现这一点我假设您始终有一个类似“2 5”的字符串作为输入: 解决方案可能如下所示: def toSeq(value: String): Seq[Int]

我有一个可变的集合,并从输入中给它赋值

var set=scala.collection.mutable.set[Int]()
set++=(in.readLine().split(“”.map(u.toInt))

输入:
15

实际输出:
1,5

所需输出:
1,2,3,4,5


如果使用了带条件的平面图,但出现了错误。如何使用flatMap实现这一点我假设您始终有一个类似“2 5”的字符串作为输入:

解决方案可能如下所示:

def toSeq(value: String): Seq[Int] = {
  value.split(" ")
  .map(_.toInt).toList match {
    case x1::x2::_ => x1 to x2
    case other => Nil// handle Exception
  }
}
println(toSeq("1 5").toList)

请注意,输入未经验证

如果使用了带条件的flatMap,但出现了错误。
您可以发布您尝试的内容和错误吗?如果输入只有2个值,为什么输出应该有5个值?
集合
只包含您放入的内容(减去任何重复项)。为什么您如此痴迷于平面图?为什么您只想使用平面图?正如我所看到的,你在输入中给出了两个int,它们是空格分隔的,如果你将其拆分,它会给你一个列表(“1”,“5”),现在是什么让你认为你可以在上面使用flatMap?看起来,你只是误解了
flatMap
,现在你有了错误的期望。我也许你的意思是
Range
,而不是
Set