170

只是好奇地想知道:为什么 Go 编程语言的标准库中没有像 startwith、endwith 等标准函数?

4

2 回答 2

295

strings包包含HasPrefix和HasSuffix

import "strings"

startsWith := strings.HasPrefix("prefix", "pre") // true
endsWith := strings.HasSuffix("suffix", "fix") // true

play.golang.org

于 2012-11-06T03:49:43.180 回答
4

如果您正在使用字节,您可以使用字节包中的这些函数:

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("")))
}

这将比首先转换为字符串成本更低。如果您正在从 HTTP 请求读取,或者从本地文件读取,这很有用。

于 2020-12-17T21:21:14.050 回答