Avatar ·

Go não tem funções strings.HasPrefix e strings.HasSuffix? Como verificar o início e o fim de uma string?

Olá a todos! Acabei de começar a estudar Go depois do Python e me deparei com um problema inesperado. Em Python, eu costumava escrever: ```python if "hello world".startswith("hello"): print("Começa com hello") ``` Ou: ```python if "file.txt".endswith(".txt"): print("É um arquivo de texto") ``` Mas quando tentei fazer o mesmo em Go, não encontrei métodos embutidos `startswith` ou `endswith`. Olhei na documentação do pacote `strings` e encontrei apenas `Contains`, `TrimPrefix`, `TrimSuffix`, mas nada parecido com uma verificação direta de início ou fim de string. Preciso escrever um parser de logs simples, onde verifico se a linha começa com `"[ERROR]"` ou termina com `"CRITICAL"`. Por enquanto, escrevi um workaround: ```go line := "[ERROR] something went wrong" if len(line) >= 7 && line[:7] == "[ERROR]" { fmt.Println("Isso é um erro") } ``` Mas isso parece horrível e não confiável. Será que Go realmente não tem funções adequadas para verificar início e fim de string? Ou estou perdendo algo?