Vejo que o Kotlin possui ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
, que são equivalentes byte[], short[], int[],char[], double[], float[]
em Java.
Agora estou me perguntando, existe algum StringArray
equivalente ao Java String[]
?
typealias StringArray = Array<String>
;)Respostas:
Não há nenhum caso especial para
String
, porqueString
é um tipo de referencial comum na JVM, em contraste com primitivos Java (int
,double
...) - armazená-los em uma referênciaArray<T>
requer boxe-los em objetos comoInteger
eDouble
. O objetivo de matrizes especializadas, comoIntArray
no Kotlin, é armazenar primitivas sem caixa, eliminando as despesas gerais de box e unboxing (o mesmo que Java emint[]
vez deInteger[]
).Você pode usar
Array<String>
(eArray<String?>
para anuláveis), o que é equivalenteString[]
em Java:Veja também: Matrizes na referência de idioma
fonte
use arrayOf , arrayOfNulls , emptyArray
fonte
Para criar um vazio
Array of Strings
no Kotlin, você deve usar uma das seis abordagens a seguir:Primeira abordagem:
Segunda abordagem:
Terceira abordagem:
Quarta abordagem:
Quinta abordagem:
Sexta abordagem:
fonte
Esses tipos existem para que você possa criar matrizes dos primitivos, e não dos tipos em caixas. Como String não é uma primitiva em Java, você pode apenas usar
Array<String>
no Kotlin como o equivalente a um JavaString[]
.fonte
Para
Strings
e outros tipos, você apenas usaArray<*>
. A razãoIntArray
e outras existem é impedir a autoboxing.Então,
int[]
diz respeito aIntArray
ondeInteger[]
diz respeitoArray<Int>
.fonte
Algumas das maneiras comuns de criar uma matriz String são
Isso criará uma matriz de 5 cadeias com valores iniciais para serem cadeias vazias.
<String?>
(5)Isso criará uma matriz de tamanho 5 com valores iniciais como nulos. Você pode usar dados da String para modificar a matriz.
Quando você já conhece o conteúdo da matriz, pode inicializar a matriz diretamente.
Também existe uma maneira fácil de criar uma matriz multidimensional de seqüências de caracteres.
matriz de var = Matriz (5) {Matriz (6) {""}}
É assim que você pode criar uma matriz com 5 linhas e 6 colunas com valores iniciais de sequência vazia.
fonte
Este exemplo funciona perfeitamente no Android
No kotlin, você pode usar uma expressão lambda para isso. A definição do construtor de matriz Kotlin é:
Qual avalia para:
Ou:
Neste exemplo, a definição de campo foi:
Espero que isto ajude
fonte
você pode usar também:
por exemplo.
fonte