Avatar ·

Comment diviser une chaîne par des espaces en Go ? (Split string on whitespace)

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai un problème. Je dois diviser une chaîne en mots, en ignorant tous les caractères d'espacement (espaces, tabulations, sauts de ligne). J'ai essayé d'utiliser `strings.Split()`, mais elle ne fonctionne qu'avec un seul séparateur. Par exemple, si j'écris : ```go package main import ( "fmt" "strings" ) func main() { s := "hello world\tfoo\nbar" parts := strings.Split(s, " ") fmt.Println(parts) // ["hello", "", "", "world\tfoo\nbar"] } ``` C'est un désastre — des chaînes vides, la tabulation n'est pas prise en compte. J'ai vu que dans d'autres langages (Python, Java), il existe des méthodes intégrées `split()` sans arguments qui gèrent automatiquement tous les espaces. Y a-t-il quelque chose de similaire en Go ? Ou dois-je écrire ma propre fonction ? J'ai entendu dire qu'on peut utiliser `regexp`, mais j'ai peur que cela ralentisse le programme. Indiquez-moi la méthode optimale. Important : j'ai besoin de diviser en mots, pas seulement de supprimer les espaces superflus. Exemple : "a b\tc" → ["a", "b", "c"].