Avatar ·

Como dividir uma string por espaços em branco em Go? (Split string on whitespace)

Olá a todos! Comecei a estudar Go recentemente e tive um problema. Preciso dividir uma string em palavras, ignorando todos os caracteres de espaço em branco (espaços, tabulações, quebras de linha).\n\nTentei usar `strings.Split()`, mas ela funciona apenas com um único delimitador. Por exemplo, se eu escrevo:\n\n```go\npackage main\n\nimport (\n "fmt"\n "strings"\n)\n\nfunc main() {\n s := "hello world\tfoo\nbar"\n parts := strings.Split(s, " ")\n fmt.Println(parts)\n // ["hello", "", "", "world\tfoo\nbar"]\n}\n```\n\nFica uma bagunça — strings vazias, tabulação não é considerada.\n\nVi que em outras linguagens (Python, Java) existem métodos nativos `split()` sem argumentos, que lidam automaticamente com qualquer espaço em branco. Existe algo similar em Go? Ou preciso escrever minha própria função? Ouvi dizer que é possível usar `regexp`, mas temo que isso deixe o programa mais lento. Indiquem a maneira ideal.\n\nImportante: preciso dividir em palavras, não apenas remover espaços extras. Exemplo: "a b\tc" → ["a", "b", "c"].