Nesnelerin kotlin'inde 2darray nasıl oluşturulur? [çoğaltmak]

0

Soru

Bir nesne için Kotlin'de bir 2d dizinin nasıl oluşturulacağına dair iyi bir açıklama bulmanın ne kadar zor olduğu konusunda gerçekten şok oldum.

Bunlar, burada ne stack'te ne de çevrimiçi olarak ne işe yaradığını bulduğum girişimlerim, neden? kotlin'de yerleşik olmayan bir 2d nesne dizisini nasıl oluşturabilirim!!!

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)
        }
    }

"Null, null olmayan bir türün değeri olamaz" diyor, bu yüzden bir arrayofnulls () kullanmam gerektiğini tahmin ediyorum, ancak bir kaynak bulamıyorum birisi bana yardım edebilir veya bana bir kaynak verebilir mi?

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

En iyi cevabı

0

Kotlin'de kullanıcı tarafından oluşturulan bir nesneyle 2D Diziyi bu şekilde oluşturursunuz. ArrayofNulls, dizideki tüm dizinleri null olarak ayarlamanıza ve daha sonra bunları bir for döngüsü ile başlatmanıza izin verir!

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

Tahmin et ne oldu, diziyi başlatacaksanız bir for döngüsüne bile ihtiyacınız yok, sadece yazın val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . Öğelerin başlatılmasının dizi dizinlerine bağlı olması durumunda şunları yazabilirsiniz val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Teşekkürler, bunun 10x10 matris oluşturacağını düşünmekte haklı mıyım?
francisRH

@ francisRH Evet ve hayır. Kotlin'in çok boyutlu dizileri veya matrisleri yoktur. Bu kod 10 diziden oluşan bir dizi oluşturur ve her iç dizinin boyutu 10'dur. Yani evet, bu 10x10 matrisine benzer, ancak tam olarak konuşmak bir 2d dizisi değil, dizi dizisidir.
broot

Diğer dillerde

Bu sayfa diğer dillerde

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