我试图在两组之间设置差异如下:
val set1 = Set(1, 2, 3, 4, 5)
// gives: scala.collection.immutable.Set[Int]
val set2 = Set(0 until 10)
// gives: scala.collection.immutable.Set[scala.collection.immutable.Range]
但是,以下错误:
scala> set2.diff(set1)
<console>:14: error: type mismatch;
found : scala.collection.immutable.Set[Int]
required: scala.collection.GenSet[scala.collection.immutable.Range]
set2.diff(set1)
^
如何以最简单的方式将Set[Range]
转换为Set[Int]
?
答案 0 :(得分:3)
你可以这样做:
(0 to 10).toSet
或坚持你最初的想法(但不太干净):
Set(0 until 10).flatten
返回:
scala.collection.immutable.Set[Int] = Set(0, 5, 1, 6, 9, 2, 7, 3, 8, 4)
如果您使用列表,则可以执行此操作(它似乎不适用于Set):
List.range(0, 10)
答案 1 :(得分:0)
与上面建议的答案相似
(0 until 10).toSet
也可以使用并返回相同的内容。