Just curious to findout: why aren't there standard functions like startswith, endswith, etc as part of the standard libraries in the Go programming language?
Asked
Active
Viewed 5.6k times
2 Answers
318
The strings package contains HasPrefix and HasSuffix.
import "strings"
startsWith := strings.HasPrefix("prefix", "pre") // true
endsWith := strings.HasSuffix("suffix", "fix") // true

Kyle Finley
- 11,842
- 6
- 43
- 64
4
If you are working with bytes, you can use these functions from the bytes package:
package main
import (
"bytes"
"fmt"
)
func main() {
fmt.Println(bytes.HasPrefix([]byte("Gopher"), []byte("Go")))
fmt.Println(bytes.HasPrefix([]byte("Gopher"), []byte("C")))
fmt.Println(bytes.HasPrefix([]byte("Gopher"), []byte("")))
}
It will be less costly than converting to string first. Useful if you are reading in from an HTTP request, or reading from a local file.

Zombo
- 1
- 62
- 391
- 407