Gibt es in Go keine Funktionen strings.HasPrefix und strings.HasSuffix? Wie überprüft man den Anfang und das Ende eines Strings?
Hallo zusammen! Ich habe gerade angefangen, Go nach Python zu lernen, und bin auf ein unerwartetes Problem gestoßen. In Python habe ich normalerweise geschrieben:
```python
if "hello world".startswith("hello"):
print("Beginnt mit hello")
```
Oder:
```python
if "file.txt".endswith(".txt"):
print("Dies ist eine Textdatei")
```
Aber als ich versuchte, dasselbe in Go zu tun, fand ich keine eingebauten Methoden `startswith` oder `endswith`. Ich habe in der Dokumentation des `strings`-Pakets nachgeschaut und nur `Contains`, `TrimPrefix`, `TrimSuffix` gefunden, aber nichts, das einer direkten Überprüfung des Anfangs oder Endes eines Strings ähnelt.
Ich muss einen einfachen Log-Parser schreiben, bei dem ich überprüfe, ob ein String mit `"[ERROR]"` beginnt oder mit `"CRITICAL"` endet. Bisher habe ich einen Workaround geschrieben:
```go
line := "[ERROR] something went wrong"
if len(line) >= 7 && line[:7] == "[ERROR]" {
fmt.Println("Dies ist ein Fehler")
}
```
Aber das sieht schrecklich und unzuverlässig aus. Gibt es in Go wirklich keine ordentlichen Funktionen, um den Anfang und das Ende eines Strings zu überprüfen? Oder übersehe ich etwas?