Maison >développement back-end >Golang >Comment numériser efficacement plusieurs numéros dans une tranche en Go ?
Analyse de nombres en tranches dans Go
Lors de la lecture de plusieurs nombres à partir de l'entrée standard dans Go, vous pouvez attribuer des valeurs à des variables individuelles :
numbers := make([]int, 2) fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])
Cependant, vous souhaiterez peut-être simplifier le processus et lire directement dans une tranche. Le package fmt ne prend pas en charge l'analyse en tranches, mais la fonction utilitaire suivante peut aider :
func packAddrs(n []int) []interface{} { p := make([]interface{}, len(n)) for i := range n { p[i] = &n[i] } return p }
Cette fonction crée une tranche d'adresses pour chaque élément de la tranche d'entrée. Avec cette fonction, vous pouvez numériser une tranche comme celle-ci :
numbers := make([]int, 2) n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...) fmt.Println(numbers, n, err)
Tester cela avec fmt.Sscan() :
numbers := make([]int, 5) n, err := fmt.Sscan("1 3 5 7 9", packAddrs(numbers)...) fmt.Println(numbers, n, err)
Sortie :
[1 3 5 7 9] 5 <nil>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!