Arrays Swift: como usar e por quê? (Com exemplos)

Neste tutorial, você aprenderá sobre arrays, como criá-los, acessar valores de um array e algumas operações comuns em array.

No artigo anterior sobre Tipos de dados Swift, aprendemos sobre a criação de variáveis ​​/ constantes de alguns tipos de dados que podem conter um único valor.

Mas, e se quisermos armazenar vários valores do mesmo tipo de dados. Usamos algo chamado Array em Swift.

O que é um array?

Uma matriz é simplesmente um contêiner que pode conter vários dados (valores) de um tipo de dados em uma lista ordenada, ou seja, você obtém os elementos na mesma ordem em que definiu os itens na matriz.

Uma matriz pode armazenar valores de qualquer tipo de dados Int, por exemplo String, classe, etc.

Como declarar um array em Swift?

Você pode criar uma matriz vazia especificando o tipo de dados entre colchetes ().

Lembre-se, você deve incluir o tipo entre colchetes, caso contrário, o Swift o tratará como um tipo de dados normal e você pode armazenar apenas um único valor nele.

Exemplo 1: declaração de uma matriz vazia

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Quando você executa o programa, a saída será:

 ()

No programa acima, declaramos uma constante emptyIntArr que pode armazenar array de inteiros e inicializada com 0 valores.

OU

Você também pode definir uma matriz vazia conforme abaixo:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

OU

Como swift é uma linguagem de inferência de tipo, você também pode criar array diretamente sem especificar o tipo de dados, mas deve inicializar com alguns valores para que o compilador possa inferir seu tipo como:

Exemplo 2: declaração de uma matriz com alguns valores

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Quando você executa o programa, a saída será:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

No programa acima, declaramos uma constante someIntArr que pode armazenar array de Integer sem especificar o tipo explicitamente. Além disso, inicializamos o array com 1, 2, 3, 4, 5, 6, 7, 8, 9 valores.

Exemplo 3: declaração de uma matriz contendo o número especificado de um único valor repetido

Você também pode repetir um valor um determinado número de vezes para formar uma matriz em Swift. Isso é feito usando o inicializador de array com repetição e contagem.

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Quando você executa o programa, a saída será:

 ("Hello, World", "Hello, World", "Hello, World", "Hello, World")

No programa acima, definimos uma constante arrWithRepeatingValues ​​que armazena uma matriz de string Hello, World e repete o mesmo valor por 4 vezes, conforme especificado na contagem.

Nota: No Swift, você não pode criar uma matriz de tamanho de comprimento fixo como você faz em outras linguagens de programação. A matriz de tamanho de comprimento fixo significa que a matriz não pode ter mais elementos do que você define durante a inicialização.

Como os valores são armazenados no array?

Suponha que você tenha uma constante que pode armazenar uma série de strings como a seguir:

 deixe intArr = (21, 34, 54, 12)

A representação pictórica de como os valores são armazenados na matriz pode ser mostrada abaixo:

Todos os arrays que você cria começam com o índice 0. O primeiro elemento é armazenado no índice 0, o segundo elemento no próximo índice (1) e assim por diante.

Como acessar os elementos do array em Swift?

Você pode acessar os elementos de uma matriz usando a sintaxe do subscrito, ou seja, você precisa incluir o índice do valor que deseja acessar entre colchetes imediatamente após o nome da matriz.

Suponha que você tenha declarado um array intArr como acima. O primeiro elemento é intArr (0), o segundo elemento é intArr (1) e assim por diante.

Exemplo 4: Acessando elementos de uma matriz

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Quando você executa o programa, a saída será:

 21 34 54 12 

Você também pode acessar os elementos de uma matriz usando loops for-in. Consulte o loop Swift For-in para saber mais sobre ele.

Como modificar / adicionar elementos de array em Swift?

Você pode modificar os elementos de uma matriz usando a sintaxe do subscrito e o operador de atribuição, ou seja, você precisa incluir o índice do valor que deseja atualizar entre colchetes após o nome da matriz seguido pelo operador de atribuição e o novo valor.

Exemplo 5: Modificando elementos de uma matriz

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Quando você executa o programa, a saída será:

 (12, 42, 45, 21)

Você também pode modificar todos os elementos da matriz com novos valores, conforme abaixo:

Exemplo 6: Modificando uma matriz como um todo

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Quando você executa o programa, a saída será:

 (1, 2, 3)

No entanto, para adicionar um novo elemento a uma matriz existente, você não pode usar a sintaxe do subscrito. Se o fizer, você terminará com um erro. Você não pode fazer algo assim:

Exemplo 7: Adicionar um novo elemento em uma matriz usando a sintaxe de subscrito (não funciona)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Quando você executa o programa, a saída será:

 erro fatal: índice fora do intervalo

O programa acima dá um erro ao atribuir um novo elemento a um array intArr. Isso ocorre porque intArr não alocou memória extra para o índice 4 e não pode armazenar o valor fornecido.

Para inserir corretamente um novo elemento em um array, usamos o append()método de array . append()é descrito na seção abaixo.

Algumas funções e propriedades úteis do Array

1. isEmpty

Esta propriedade determina se um array está vazio ou não. Ele retorna truese uma matriz não contém nenhum valor, caso contrário, retorna false.

Exemplo 8: Como funciona o isEmpty?

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Quando você executa o programa, a saída será:

 falso

2. primeiro

Esta propriedade é usada para acessar o primeiro elemento de uma matriz.

Exemplo 9: Como funciona primeiro?

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Quando você executa o programa, a saída será:

 Opcional (21)

Da mesma forma, você pode usar a lastpropriedade para acessar o último elemento de uma matriz.

3. anexar

A função append é usada para inserir / acrescentar elemento no final da matriz.

Exemplo 10: Como funciona o append?

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Quando você executa o programa, a saída será:

 (21, 34, 54, 12, 32)

Você também pode anexar o conteúdo de uma matriz a outra como:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Quando você executa o programa, a saída será:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. inserir

Esta função é usada para inserir / anexar elemento no índice específico do array.

Exemplo 11: Como funciona a inserção?

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Quando você executa o programa, a saída será:

 (21, 22, 34, 54, 12)

Da mesma forma, você também pode usar a removepropriedade para remover o elemento no índice especificado.

5. remover

Esta função remove e retorna o valor especificado na posição especificada da matriz.

Exemplo 12: Como remover funciona?

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Quando você executa o programa, a saída será:

 o valor removido é bc ("ab", "cd", "de") 

Da mesma forma, você também pode usar funções como removeFirstremover o primeiro elemento de um array, removeLastremover o último elemento de um array e removeAllesvaziar um array.

6. invertido

Esta função retorna os elementos do array em ordem reversa.

Exemplo 13: Como reverso () funciona?

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Quando você executa o programa, a saída será:

 (24, 23, 22, 21)

7. contar

Esta propriedade retorna o número total de elementos em uma matriz.

Exemplo 14: contagem

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Quando você executa o programa, a saída será:

 4

Coisas para lembrar

Ao usar a sintaxe do subscrito para acessar os elementos de uma matriz em Swift, você deve ter certeza de que o valor está no índice, caso contrário, o tempo de execução travará. Vamos ver isso no exemplo:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Quando você executa o programa, a saída será:

 erro fatal: índice fora do intervalo

No programa acima, não há valor no índice -1 . Portanto, ao tentar acessar o valor no índice, você obterá uma falha de tempo de execução.

Para evitar isso, primeiro encontre o índice do elemento que você está tentando remover. Em seguida, remova o elemento do índice conforme abaixo:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Quando você executa o programa, a saída será:

 índice encontrado 34 

Artigos interessantes...