Différence entre []String et ...String dans Go
-
Définir une tranche à l’aide de
[]stringdans Go -
Définir une fonction variadique en utilisant
...stringdans Go -
Utilisez à la fois
[]stringet...stringdans Go
Une section de tableau est appelée tranche. Les tranches offrent plus de puissance, de flexibilité et de commodité que les baies.
Les tranches sont indexables et ont une longueur, un peu comme les tableaux. Contrairement aux tableaux, ils peuvent être étendus.
Une tranche est une structure de données qui définit une section contiguë d’un tableau et est conservée séparément de la variable de tranche.
Un tableau n’est pas la même chose qu’une tranche. Une tranche d’un tableau en est un sous-ensemble.
Cet article traitera des différences entre []string et ...string dans Go.
Définir une tranche à l’aide de []string dans Go
Dans cet exemple, nous avons utilisé les commandes for et range pour parcourir un ensemble de mots.
package main
import "fmt"
func main() {
words := []string{"Iron Man", "Thor", "Hulk", "Dr Strange", "Spiderman"}
for idx, word := range words {
fmt.Println(idx, word)
}
}
Production:
0 Iron Man
1 Thor
2 Hulk
3 Dr Strange
4 Spiderman
Définir une fonction variadique en utilisant ...string dans Go
Une ellipse (...) devant le paramètre définit une fonction variadique. Créons un programme qui répond aux noms Avengers fournis à une fonction.
Nous avons conçu une méthode sayHello qui accepte un paramètre, names. Comme nous avons ajouté des points de suspension (...) avant le type de données : ...string, l’argument est une variable.
Go comprend que la fonction peut prendre zéro, un ou plusieurs paramètres.
Le paramètre names est envoyé à la méthode sayHello sous forme de tranche. Comme le type de données est une chaîne, le paramètre names peut être géré à l’intérieur du corps de la méthode comme une tranche de chaînes ([]string).
Nous pouvons utiliser l’opérateur range pour construire une boucle qui itère sur la tranche de chaînes.
package main
import "fmt"
func main() {
sayHello()
sayHello("Iron Man")
sayHello("Thor", "Hulk", "Dr Strange", "Spiderman")
}
func sayHello(names ...string) {
for _, n := range names {
fmt.Printf("Hello %s\n", n)
}
Production:
Hello Iron Man
Hello Thor
Hello Hulk
Hello Dr Strange
Hello Spiderman
Utilisez à la fois []string et ...string dans Go
package main
import "fmt"
func f(args ...string) {
fmt.Println(len(args))
for i, s := range args {
fmt.Println(i, s)
}
}
func main() {
args := []string{"Hello", "Jay"}
f(args...)
}
Production:
2
0 Hello
1 Jay
Article connexe - Go Slice
- Comment supprimer un élément d'une tranche dans le Golang
- Créer une tranche vide dans Go
- Vérifier si une tranche contient un élément dans Golang
- Concaténer deux tranches en Go