Longueur vs Capacité
Nous pouvons déterminer la longueur d’un tableau ou d’une tranche à l’aide de la fonction len :
index.go
12345randomNumbers := [] 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
1234randomNumbers := [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
12345randomNumbers := [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
12345678numbers := [] 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.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
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
Longueur 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
12345randomNumbers := [] 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
1234randomNumbers := [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
12345randomNumbers := [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
12345678numbers := [] 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.
Merci pour vos commentaires !