Go n'a-t-il pas de fonctions strings.HasPrefix et strings.HasSuffix ? Comment vérifier le début et la fin d'une chaîne ?
Bonjour à tous ! Je viens de commencer à apprendre Go après Python et j'ai rencontré un problème inattendu. En Python, j'avais l'habitude d'écrire :
```python
if "hello world".startswith("hello"):
print("Commence par hello")
```
Ou :
```python
if "file.txt".endswith(".txt"):
print("C'est un fichier texte")
```
Mais quand j'ai essayé de faire la même chose en Go, je n'ai pas trouvé de méthodes intégrées `startswith` ou `endswith`. J'ai regardé dans la documentation du package `strings` et j'ai seulement trouvé `Contains`, `TrimPrefix`, `TrimSuffix`, mais rien qui ressemble à une vérification directe du début ou de la fin d'une chaîne.
J'ai besoin d'écrire un analyseur de logs simple, où je vérifie si une ligne commence par `"[ERROR]"` ou se termine par `"CRITICAL"`. Pour l'instant, j'ai écrit une solution de contournement :
```go
line := "[ERROR] something went wrong"
if len(line) >= 7 && line[:7] == "[ERROR]" {
fmt.Println("C'est une erreur")
}
```
Mais cela semble horrible et peu fiable. Est-ce que Go n'a vraiment pas de fonctions normales pour vérifier le début et la fin d'une chaîne ? Ou est-ce que j'ai raté quelque chose ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs