我有一个包含字符串组合和字符串子集的Set,如下所示:
val s = Set(brand1-_test, Set(brand-one, brand_one, brandone), brands-two, brandthree1, Set(brand-three2, brand_three2, brandthree2))
如何平整这个以便我有一套扁平的字符串? s.flatten
无法处理以下错误:
error: No implicit view available from Object => scala.collection.GenTraversableOnce[B]
flatMap也不是。我在这里错过了什么? Set可以很容易地合并subLists或subArrays(它们是前一个函数的结果),如果这会产生影响。
答案 0 :(得分:5)
s.flatMap { case x:Iterable[_] => x; case y => Seq(y) }
答案 1 :(得分:0)
尝试将其放入REPL:
scala> val s = Set("s1", Set("s2", "s3"))
s: scala.collection.immutable.Set[Object] = Set(s1, Set(s2, s3))
因为你提供了两种类型(Set和String),所以scala推断出一种覆盖两者的类型(在这种情况下是Object,但在大多数情况下可能是Any或AnyRef),它不是一个集合,因此不能展平。