Ako vytvoriť 2darray v kotlin objektov? [duplicitné]

0

Otázka

Som skutočne rád, na to, aké ťažké je nájsť dobré vysvetlenie o tom, ako vytvoriť 2d pole v Kotlin pre objekt.

Toto sú moje pokusy z toho, čo som našiel ani tu na seba a on-line ani pracovať, prečo? ako môžem vytvoriť 2d pole objektov nebol postavený do Kotlin!!!

var matrix : Array<Array<myObject?>> = null

//var arr2D = Array(10) { Array(10) { myObject(this) } }

for (i in 0 until 9) {
        for (j in 0 until 9) {
            matrix[i][j] = myObject(this)
        }
    }

To hovorí, "null nemôže byť hodnota non-null typu" takže si myslím, že mám použiť arrayofnulls(), ale nemôže nájsť zdroj môže mi niekto pomôcť, alebo daj mi zdroj?

kotlin
2021-11-24 01:01:23
1

Najlepšiu odpoveď

0

To je, ako môžete vytvoriť 2D Pole v Kotlin s používateľom vyrobené objektu. ArrayofNulls vám umožňuje nastaviť všetky indexy v poli na hodnotu null a potom len inicializovať ich neskôr s pre slučky!

    val matrix = Array(10) {
        arrayOfNulls<myObject?>(
            10
        )
    }
2021-11-24 01:23:23

Vieš čo nemáte ešte potrebovať pre slučky, ak sa chystáte na inicializácia poľa, stačí napísať val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . V prípade inicializácia prvkov závisí na pole indexy, môžete napísať val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Vďaka, ja som priamo v myslenia, že to bude vytvoriť 10x10 matrix?
francisRH

@francisRH Dobre, áno a nie. Kotlin nemá viacrozmerné polia alebo matice. Tento kód vytvorí pole 10 polí a každý vnútorné pole má veľkosť 10. Takže áno, je to podobné ako 10 x 10 matice, ale hovoriť presne to nie je 2d pole, ale pole polí.
broot

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................