Longueur et capacité
Comprendre la longueur des tableaux
En Golang, la longueur d'un tableau (array) est une propriété fondamentale qui définit le nombre d'éléments qu'un tableau peut contenir. Contrairement aux slices, les tableaux ont une longueur fixe qui ne peut pas être modifiée après la déclaration.
Déterminer la longueur d'un tableau
package main
import "fmt"
func main() {
numbers := [5]int{10, 20, 30, 40, 50}
// Using len() function to get array length
fmt.Println("Array Length:", len(numbers)) // Output: 5
}
Longueur vs. Capacité
Propriété |
Tableau (Array) |
Slice |
Longueur |
Fixée à la déclaration |
Peut être modifiée dynamiquement |
Capacité |
Égale à la taille déclarée |
Peut être supérieure à la longueur |
Modification |
Ne peut pas être redimensionné |
Peut être redimensionné |
Visualisation du calcul de la longueur
graph TD
A[Array Length] --> B[Number of Elements]
A --> C[Determined at Compile Time]
A --> D[Immutable]
Opérations pratiques sur la longueur
Parcourir un tableau en utilisant sa longueur
package main
import "fmt"
func main() {
fruits := [4]string{"Apple", "Banana", "Cherry", "Date"}
// Iterating using length
for i := 0; i < len(fruits); i++ {
fmt.Printf("Fruit %d: %s\n", i, fruits[i])
}
}
Fonctions liées à la longueur
len()
: Renvoie le nombre d'éléments
- Impossible de modifier directement la longueur d'un tableau
- Fournit des informations sur la taille au moment de la compilation
Considérations sur la mémoire
graph LR
A[Array Memory] --> B[Fixed Size]
A --> C[Contiguous Memory Allocation]
A --> D[Predictable Memory Usage]
Techniques avancées de longueur
Vérification de la longueur au moment de la compilation
func processArray(arr [5]int) {
// This function only accepts arrays with exactly 5 elements
}
Conseil d'apprentissage de LabEx
Chez LabEx, nous insistons sur la compréhension de la nature immuable de la longueur des tableaux en Golang comme un concept clé pour une gestion efficace de la mémoire.
- La longueur fixe permet des optimisations du compilateur
- Allocation mémoire prévisible
- Pas de surcoût d'exécution pour la détermination de la longueur
Exemple complet : Démonstration de la longueur
package main
import "fmt"
func main() {
// Different array declarations
numbers := [5]int{1, 2, 3, 4, 5}
mixedArray := [...]int{10, 20, 30}
fmt.Println("Numbers array length:", len(numbers)) // Output: 5
fmt.Println("Mixed array length:", len(mixedArray)) // Output: 3
}
Pièges courants
- Supposer que la longueur d'un tableau peut être modifiée
- Ne pas vérifier les limites d'un tableau
- Mal comprendre les différences entre longueur et capacité