Mam sytuacji, gdy trzeba metodę, która może wziąć w rodzaju:Scala rekurencyjne rodzaj i typ konstruktor realizacja
Array[Int]
Array[Array[Int]]
Array[Array[Array[Int]]]
Array[Array[Array[Array[Int]]]]
etc...
nazwijmy ten typ RAI dla „rekurencyjnego tablicy int”
def make(rai: RAI): ArrayPrinter = { ArrayPrinter(rai) }
Gdzie ArrayPrinter jest klasą, która jest inicjowana z RAI i iteruje przez całą ramkę (załóżmy, że drukuje wszystkie wartości w tym Array [Array [Int]])
val arrayOfArray: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4))
val printer: ArrayPrinter[Array[Array[Int]]] = make(arrayOfArray)
printer.print_! // prints "1, 2, 3, 4"
Może również zwracać oryginalny Array [Array [Int]] bez utraty informacji o typie.
val arr: Array[Array[Int]] = printer.getNestedArray()
Jak zrealizować to w Scala?
Brzmi jak zadanie dla https://index.scala-lang.org/slamdata/matryoshka/matryoshka-core/0.18.3 – Reactormonk
Same diagramy są warte sprawdzenia matryoshka! – pedrofurla