Saya menggunakan Array(0, {i -> ""})
saat ini, dan saya ingin tahu apakah ada implementasi yang lebih baik sepertiArray()
ditambah lagi, jika saya menggunakan arrayOfNulls<String>(0) as Array<String>
, kompilator akan mengingatkan saya bahwa pemeran ini tidak akan pernah berhasil. Tapi itu adalah implementasi default di dalamnya Array(0, {i -> ""})
. Apakah saya melewatkan sesuatu?
Jawaban:
Sampai akhir (Juni 2015) ada fungsi perpustakaan standar Kotlin
public fun <T> arrayOf(vararg t: T): Array<T>
Jadi untuk membuat array kosong dari Strings Anda bisa menulis
val emptyStringArray = arrayOf<String>()
sumber
IntArray
? Saat ini saya sedang menggunakanarrayOf<Int>().toIntArray()
, apakah ada cara yang lebih baik?java.lang.ArrayIndexOutOfBoundsException:
pengecualian.T
bukanString
?Sekadar referensi, ada juga
emptyArray
. Sebagai contoh,var arr = emptyArray<String>()
Lihat
sumber
java.lang.ArrayIndexOutOfBoundsException:
bagaimana kita bisa menggunakannya?0
! Jadi itu berguna hanya untuk tujuan yang sangat khusus yang Anda tidak ingin menyimpan data apa pun (hanya ingin mengetik ). GunakanArray(length){""}
untuk memasukkan yang diinginkanlength
. Lihat jawaban saya di bawah untuk detailnya.Kosong atau
null
? Itu pertanyaannya!Untuk membuat array
null
s, cukup gunakanarrayOfNulls<Type>(length)
.Tetapi untuk menghasilkan larik ukuran kosong
length
, gunakan:val arr = Array(length) { emptyObject }
Catatannya adalah Anda harus mendefinisikan dengan
emptyObject
benar untuk setiap tipe data (karena Anda tidak menginginkannyanull
). E. g. untukString
s,emptyObject
bisa""
. Begitu:val arr = Array(3) { "" } // is equivalent for: arrayOf("","","")
Berikut adalah contoh langsungnya . Perhatikan bahwa program berjalan dengan dua contoh argumen, secara default.
sumber
array nol
var arrayString=Array<String?>(5){null} var nullArray= arrayOfNulls<String>(5)
sumber
Menggunakan:
@JvmField val EMPTY_STRING_ARRAY = arrayOfNulls<String>(0)
Ini mengembalikan array ukuran 0 dari Strings, diinisialisasi dengan nilai null.
1. Salah:
@JvmField val EMPTY_STRING_ARRAY = emptyArray<String>()
Ia kembali
arrayOfNulls<String>(0)
2. Salah:
@JvmField val EMPTY_STRING_ARRAY = arrayOf<String>()
Ini mengembalikan sebuah array yang berisi Strings.
sumber
Seperti disebutkan di atas, Anda dapat menggunakan
IntArray(size)
atauFloatArray(size)
.sumber
Saya menemukan dua cara untuk membuat array kosong, cara kedua tanpa lambda:
var arr = Array (0, { i -> "" }) var arr2 = array<String>()
Mengenai string null Kotlin, ini tidak diperbolehkan. Anda harus menggunakan String? ketik untuk memungkinkan string menjadi null.
sumber