wenn ichWie Funktion für flattern Paare von Arrays in Scala machen?
scala> test
res3: Array[java.io.Serializable] = Array(Array((AA,BB), (CC,DD)), (EE,FF))
haben, und ich will diese konvertieren zu
Array[(Any, Any)] = Array((AA,BB), (CC,DD), (EE,FF))
Ich kann mit flatMap Funktion wie diese
scala> val test2 = test.flatMap{
| case (a,b) => Array((a,b))
| case i:Array[Any] => i.flatMap{
| case (a,b)=> Array((a,b))}
| }
test2: Array[(Any, Any)] = Array((AA,BB), (CC,DD), (EE,FF))
konvertieren, aber ich möchte Funktion für alle Tiefe machen von Arrays. so habe ich versucht,
scala> def flatArray(array: Array[Any]): Array[(Any,Any)] ={
| array.flatMap{
| case (a,b) => Array((a,b))
| case i:Array[Any] => flatArray(i)
| }
| }
scala> val test2 = flatArray(test)
<console>:9: error: type mismatch;
found : Array[java.io.Serializable]
required: Array[Any]
Note: java.io.Serializable <: Any, but class Array is invariant in type T.
You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10)
val test2 = flatArray(test)
^
was ist das Problem ???
So 'Test ist ia Array mit einer zwei-Element-Array (mit Tupeln), und dann einem Tupel das, ist ein sehr ungeradee Datenstruktur ist es wirklich richtig –