Problem w odczycie zagnieżdżonej tablicy

0

Cześć, jaki jest sposób odczytania wybranego elementu w tej zagnieżdżonej tablicy?

val zxc = mutableMapOf(
    "tablica" to mutableListOf(
        mutableMapOf(
            "tekst1" to "ala ma kota",
            "teksty" to mutableListOf(
                "123456789",
                "987654321",
            ),
            "tekst2" to "kot ma ale",
        ),
        //..
    ),
)
println(zxc.get("tablica")?.get(0)?.get("tekst1")) //bez problemu odczytuje wybrany element
println(zxc.get("tablica")?.get(0)?.get("teksty")) //bez problemu odczytuje cała tablicę
println(zxc.get("tablica")?.get(0)?.get("teksty")?.get(0)) //odczytanie wybranego elementu pokazuje błąd :(

Pozdrawiam

2

wrzucasz stringi i mutablelist to jednego worka, więc kompilator nie wie czy element który wyłuskujesz ma metodę get (bo stringi nie mają). Musisz rzutować na MutableList:

println((zxc.get("tablica")?.get(0)?.get("teksty") as MutableList<*>)?.get(0))

nie znam kotlina, pewnie da się ładniej

0

Ładnie czy nie ładnie, ale chodzi poprawnie :) Wrzuciłem do jednego worka stringi i tabelę z przyzwyczajenia z PHP - jak pamiętam nie ma tam żadnych problemów z takimi rzeczami (wiem, że nie ta liga, ale przyzwyczajenia zostały).
Pozdrawiam

2
_duszek napisał(a):

[...] Wrzuciłem do jednego worka stringi i tabelę z przyzwyczajenia z PHP - jak pamiętam nie ma tam żadnych problemów z takimi rzeczami

Do czasu w której nie użyjesz stringa jako array przypadkiem :> Wtedy byś podziękował językowy za to że Cię obronił przed tym

1 użytkowników online, w tym zalogowanych: 0, gości: 1