English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift 数组(Array)

Dans ce tutoriel, vous allez apprendre à créer des tableaux, à accéder aux valeurs des tableaux et à effectuer certaines opérations courantes sur les tableaux.

Dans le paragraphe précédentSwift 数据类型Dans cet article, nous avons appris à créer des variables de certains types de données qui peuvent stocker une seule valeur/Constante.

Mais que faire si nous devons stocker plusieurs valeurs du même type ? Dans Swift, nous utilisons ce que nous appelons Tableau des choses.

Qu'est-ce qu'un tableau ?

Un tableau n'est qu'un conteneur qui peut conserver plusieurs données d'un même type dans une liste ordonnée (les éléments peuvent être récupérés dans l'ordre dans lequel ils ont été définis).

Les tableaux peuvent stocker n'importe quel type de données, par exemple Int, String, Class, etc.

Comment déclarer un tableau en Swift ?

Vous pouvez créer un tableau vide en spécifiant le type de données entre les crochets [].

Rappelez-vous que vous devez inclure le type entre les crochets, sinon Swift le considérera comme un type de données normal et vous ne pourrez y stocker qu'une seule valeur.

示例1Déclarer un tableau vide

let emptyIntArr: [Int] = []
imprime(emptyIntArr)

运行该程序时,输出为:

[ ]

Dans le programme ci-dessus, nous avons déclaré une constante emptyIntArr qui peut stocker un tableau d'entiers et l'initialiser avec des valeurs 0.

ou

Vous pouvez également définir un tableau vide comme suit :

let emptyIntArr: Array<Int> = Array()
imprime(emptyIntArr)

ou

Comme Swift est un langage de type inféré, vous pouvez également créer un tableau sans spécifier le type de données, mais vous devez utiliser quelques valeurs pour l'initialiser afin que le compilateur puisse inférer son type :

示例2Déclarer un tableau avec certaines valeurs

let someIntArr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
imprime(someIntArr)

运行该程序时,输出为:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Dans le programme ci-dessus, nous avons déclaré une constante someIntArr qui peut stocker un tableau d'entiers sans spécifier explicitement le type. De plus, nous utilisonsValeur 1,2,3,4,5,6,7,8,9 Initialisé le tableau.

示例3Déclarer un tableau contenant un nombre spécifié de valeurs répétées

Vous pouvez également répeter une valeur une certaine fois pour former un tableau en Swift. Cela est réalisé en utilisant l'initialiseur de tableau avec repeating et count.

let arrWithRepeatingValues = Array(repeating: "Bonjour, Monde", count: 4)
imprime(arrWithRepeatingValues)

运行该程序时,输出为:

["Bonjour, Monde", "Bonjour, Monde", "Bonjour, Monde", "Bonjour, Monde"]

Dans le programme ci-dessus, nous avons défini une constante arrWithRepeatingValues, qui stocke les chaînes de caractères Bonjour, le monde du tableau,et répète la même valeur4fois, comme spécifié dans l'exemple.

Remarque :En Swift, vous ne pouvez pas créer de tableau de taille fixe comme dans d'autres langages de programmation. Un tableau de taille fixe signifie que le tableau ne peut pas contenir plus d'éléments que ceux définis lors de l'initialisation.

La manière dont les valeurs sont stockées dans un tableau ?

Supposons que vous ayez une constante capable de stocker un tableau de chaînes de caractères, comme suit :

let intArr = [21, 34, 54, 12]

La représentation graphique de la manière dont les valeurs sont stockées dans un tableau est indiquée comme suit :

Tous les tableaux que vous créez commencent à l'indice 0. Le premier élément est stocké à l'indice 0, le deuxième élément à l'indice suivant(1),et ainsi de suite.

Comment accéder aux éléments du tableau en Swift ?

Vous pouvez utiliser语法来访问数组的元素,即 vous devez inclure dans les crochets après le nom du tableau l'indice de la valeur que vous souhaitez accéder.

Supposons que vous ayez déclaré un tableau intArr comme indiqué précédemment. Alors le premier élément est intArr[0], le deuxième élément est intArr[1],et ainsi de suite.

示例4:Accéder aux éléments du tableau

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

运行该程序时,输出为:

21
34
54
12

Vous pouvez également utiliser-dans la boucle pour accéder aux éléments du tableau. Pour plus d'informations, veuillez consulterfor Swift-dans la boucle.

Comment modifier en Swift/Ajouter un élément au tableau ?

Vous pouvez utiliser la syntaxe d'index et l'opérateur d'affectation pour modifier un élément du tableau, c'est-à-dire que vous devez inclure dans les crochets après le nom du tableau l'indice de la valeur que vous souhaitez mettre à jour, suivi de l'opérateur d'affectation et de la nouvelle valeur.

示例5:Modifier un élément du tableau

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

运行该程序时,输出为:

[12, 42, 45, 21]

Vous pouvez également modifier tous les éléments du tableau avec les nouvelles valeurs suivantes :

示例6:Modifier l'ensemble du tableau

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

运行该程序时,输出为:

[1, 2, 3]

Cependant, pour ajouter un nouvel élément à un tableau existant, vous ne pouvez pas utiliser la syntaxe d'index. Si vous le faites, cela entraînera finalement une erreur. Vous ne pouvez pas effectuer l'opération suivante :

示例7:Ajouter un nouvel élément dans le tableau en utilisant la syntaxe d'index (non valide)

var intArr = [21, 34, 54, 12]
intArr[4] = 10

运行该程序时,输出为:

致命错误:索引超出范围

Lorsque vous allouez un nouvel élément au tableau intArr, le programme ci-dessus donne une erreur. Cela est dû au fait que intArr n'a pas encore d'indice4Alloue de la mémoire supplémentaire et ne peut pas stocker la valeur donnée.

Pour insérer correctement un nouvel élément dans un tableau, nous utilisons la méthode append() du tableau. La méthode append() sera présentée ultérieurement.

Fonctions et propriétés intégrées du tableau

1. propriété isEmpty

Cette propriété détermine si un tableau est vide. Si un tableau ne contient aucune valeur, il renvoie true, sinon false.

示例8:isEmpty如何工作?

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

运行该程序时,输出为:

false

2.first 属性

此属性用于访问数组的第一个元素。

示例9:first 如何工作?

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

运行该程序时,输出为:

Optional(21)

同样,您可以使用 last 属性访问数组的最后一个元素。

3.append 函数(追加)

append函数用于在数组末尾插入/附加元素。

示例10:append如何工作?

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

运行该程序时,输出为:

[21, 34, 54, 12, 32]

您还可以将一个数组的内容附加到另一个数组,如下所示:

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

运行该程序时,输出为:

[1, 2, 3, 4, 5, 6, 7, 8]

4.insert 函数(插入)

此函数用于在数组的特定索引处插入/附加元素。

示例11:insert 如何工作?

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

运行该程序时,输出为:

[21, 22, 34, 54, 12]

同样,您也可以使用removeproperty删除指定索引处的元素。

5.remove() 函数(移除)

此函数从数组中删除并返回在指定位置指定的值。

示例12:remove如何工作?

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

运行该程序时,输出为:

removed value is bc
["ab", "cd", "de"]

同样,您也可以使用removeFirst删除数组的第一个元素,removeLast删除数组的最后一个元素以及removeAll清空数组的功能。

6.reversed() 函数(反转)

此函数以相反的顺序返回数组的元素。

示例13:reversed()如何工作?

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

运行该程序时,输出为:

[24, 23, 22, 21]

7.count 属性(计数)

此属性返回数组中元素的总数。

示例14:count 计数

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

运行该程序时,输出为:

4

注意事项

在Swift中使用下标语法访问数组元素时,必须确保该值位于索引中,否则将导致运行时崩溃。让我们在示例中看一下:

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

运行该程序时,输出为:

致命错误:索引超出范围

在上面的程序中,索引 -1 中没有值。因此,当您尝试访问索引中的值时,将发生运行时崩溃。

为防止这种情况,请首先找到要删除的元素的索引。然后删除索引处的元素,如下所示:

var intArr = [21, 34, 54, 12]
if let index = intArr.index(of: 34) {
    print("找到索引")
    let val = intArr.remove(at: index)
    print(val)
}

运行该程序时,输出为:

找到索引
34