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 Slices
Introduction à Golang

bookLongueur vs Capacité

Nous pouvons déterminer la longueur d’un tableau ou d’une tranche à l’aide de la fonction len :

index.go

index.go

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 à l’aide de la fonction cap :

randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 }
fmt.Println(cap(randomNumbers)) // Output: 7

numbersSlice := randomNumbers[2:7]
fmt.Println(cap(numbersSlice)) // Output: 5

La longueur et la capacité d’un tableau sont toujours identiques. Cependant, pour une tranche, la capacité peut différer de la longueur. Par exemple, lorsqu’une tranche est créée à partir d’un tableau, la capacité est supérieure à la longueur :

index.go

index.go

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 correspond au nombre d'éléments allant de l'startingIndex de la tranche jusqu'à la fin du tableau original à partir duquel elle a été créée. Dans l'exemple ci-dessus, elle est de 6.

Il est important de noter que la modification d'une tranche entraîne également la modification du tableau original. Ainsi, dans l'exemple donné, l'ajout d'un élément (ou d'une valeur) à une tranche met essentiellement à jour l'élément situé juste après l'index de fin de la tranche dans le tableau original. Autrement dit, 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 :

index.go

index.go

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 peuvent être ajoutés à la tranche. Si la capacité de la tranche est dépassée, la fonction append crée et retourne une nouvelle tranche qui n'est plus liée à une partie du tableau original. Elle devient donc indépendante du tableau original.

Vous pouvez observer l'exemple suivant : le tableau original reste inchangé même si l'on ajoute plus d'éléments à sa tranche :

index.go

index.go

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.

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 1.96

bookLongueur vs Capacité

Glissez pour afficher le menu

Nous pouvons déterminer la longueur d’un tableau ou d’une tranche à l’aide de la fonction len :

index.go

index.go

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 à l’aide de la fonction cap :

randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 }
fmt.Println(cap(randomNumbers)) // Output: 7

numbersSlice := randomNumbers[2:7]
fmt.Println(cap(numbersSlice)) // Output: 5

La longueur et la capacité d’un tableau sont toujours identiques. Cependant, pour une tranche, la capacité peut différer de la longueur. Par exemple, lorsqu’une tranche est créée à partir d’un tableau, la capacité est supérieure à la longueur :

index.go

index.go

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 correspond au nombre d'éléments allant de l'startingIndex de la tranche jusqu'à la fin du tableau original à partir duquel elle a été créée. Dans l'exemple ci-dessus, elle est de 6.

Il est important de noter que la modification d'une tranche entraîne également la modification du tableau original. Ainsi, dans l'exemple donné, l'ajout d'un élément (ou d'une valeur) à une tranche met essentiellement à jour l'élément situé juste après l'index de fin de la tranche dans le tableau original. Autrement dit, 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 :

index.go

index.go

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 peuvent être ajoutés à la tranche. Si la capacité de la tranche est dépassée, la fonction append crée et retourne une nouvelle tranche qui n'est plus liée à une partie du tableau original. Elle devient donc indépendante du tableau original.

Vous pouvez observer l'exemple suivant : le tableau original reste inchangé même si l'on ajoute plus d'éléments à sa tranche :

index.go

index.go

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.

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4
some-alt