Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Longueur vs Capacité | Tableaux et Tranches
Introduction à Golang
course content

Contenu du cours

Introduction à Golang

Introduction à Golang

1. Commencer
2. Types de Données
3. Structures de Contrôle
4. Fonctions
5. Tableaux et Tranches
6. Introduction aux Structs et Maps

book
Longueur vs Capacité

Nous pouvons déterminer la longueur d'un tableau ou d'une tranche en utilisant la fonction len:

go

index

copy
12345
randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 } fmt.Println(len(randomNumbers)) // Output: 7 numbersSlice := randomNumbers[2:7] fmt.Println(len(numbersSlice)) // Output: 5

Nous pouvons déterminer la capacité d'un tableau ou d'une tranche en utilisant la fonction cap :

La longueur et la capacité d'un tableau sont toujours les mêmes. Cependant, pour une tranche, la capacité peut différer de la longueur. Par exemple, dans le cas où une tranche est créée à partir d'un tableau, la capacité est supérieure à la longueur :

go

index

copy
1234
randomNumbers := [7] int { 1, 4, 5, 7, 9, 10, 12 } numbersSlice := randomNumbers[1:3] fmt.Println(len(numbersSlice)) // Output: 2 fmt.Println(cap(numbersSlice)) // Output: 6

La capacité d'une tranche est le nombre d'éléments allant de l'startingIndex de la tranche à la fin du tableau original à partir duquel elle a été créée. Dans l'exemple ci-dessus, elle est de 6.

Rappelez-vous que modifier une tranche modifie également le tableau original. Par conséquent, dans l'exemple donné, ajouter un élément (ou une valeur) à une tranche met essentiellement à jour l'élément suivant l'index de fin de la tranche dans le tableau original. En d'autres termes, cela augmente la taille de la tranche et met à jour les éléments du tableau original en fonction des éléments/valeurs ajoutés. Cela deviendra plus clair avec un exemple :

go

index

copy
12345
randomNumbers := [7] int { 1, 4, 5, 7, 9, 10, 12 } numbersSlice := randomNumbers[1:3] fmt.Println(randomNumbers) // Output: [1 4 5 7 9 10 12] numbersSlice = append(numbersSlice, 20, 30, 40) fmt.Println(randomNumbers) // Output: [1 4 5 20 30 40 12]

La capacité est utile pour déterminer combien d'éléments nous pouvons ajouter à la tranche. Si nous dépassons la capacité de la tranche, la fonction append crée et renvoie une nouvelle tranche qui n'est pas connectée à une partie du tableau original. Par conséquent, elle devient détachée du tableau original.

Vous pouvez voir l'exemple suivant : le tableau original reste inchangé même si nous avons ajouté plus d'éléments à sa tranche :

go

index

copy
12345678
numbers := [] int { 1, 2, 3, 4 } numSlice := numbers[1:3] fmt.Println(numbers) // Outputs: [1 2 3 4] fmt.Println(numSlice) // Outputs: [2 3] fmt.Println(cap(numSlice)) // Outputs: 3 numSlice = append(numSlice, 9, 10) fmt.Println(numSlice) // Outputs: [2 3 9 10] fmt.Println(numbers) // Outputs: [1 2 3 4]

Cela s'est produit parce que la tranche avait une capacité de 3, que nous avons dépassée. En conséquence, la fonction append a renvoyé une nouvelle tranche qui ne fait plus référence au tableau d'origine.

Quelle est la syntaxe correcte pour ajouter un élément `z` à une tranche appelée `alphabets`?

Quelle est la syntaxe correcte pour ajouter un élément z à une tranche appelée alphabets?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4
We're sorry to hear that something went wrong. What happened?
some-alt