检查 Golang 中的字节片是否以指定的后缀结尾
在Golang中,我们经常需要对字节片进行操作,其中检查字节片是否以指定的后缀结尾是一个常见的需求。本文将介绍如何在Golang中实现这一功能。
strings.HasSuffix 函数
在Golang标准库中,有一个函数可以用于检查字符串是否以指定的后缀结尾,就是strings.HasSuffix函数。该函数的定义如下:
func HasSuffix(s, suffix string) bool
第一个参数s表示要检查的字符串,第二个参数suffix表示要检查的后缀,返回值为布尔类型,表示s是否以suffix结尾。
示例代码如下:
package main
import (
"fmt"
"strings"
)
func main() {
s := "hello world!"
suffix := "ld!"
if strings.HasSuffix(s, suffix) {
fmt.Printf("%s ends with %s\n", s, suffix)
} else {
fmt.Printf("%s does not end with %s\n", s, suffix)
}
}
输出结果为:
hello world! ends with ld!
自定义函数实现
如果我们需要对字节片进行操作,那么需要自定义函数实现检查字节片是否以指定的后缀结尾。可以使用bytes包中的HasSuffix函数,该函数的定义如下:
func HasSuffix(s, suffix []byte) bool
该函数与strings.HasSuffix函数类似,第一个参数s表示要检查的字节片,第二个参数suffix表示要检查的后缀,返回值为布尔类型,表示s是否以suffix结尾。
示例代码如下:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte{104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33}
suffix := []byte{100, 33}
if bytes.HasSuffix(s, suffix) {
fmt.Printf("%v ends with %v\n", s, suffix)
} else {
fmt.Printf("%v does not end with %v\n", s, suffix)
}
}
输出结果为:
[104 101 108 108 111 32 119 111 114 108 100 33] ends with [100 33]
结论
本文介绍了Golang中两种实现方法,一种是使用标准库中的strings.HasSuffix函数,另一种是使用bytes包中的HasSuffix函数。使用起来都非常简单,选择哪种方法可以根据具体情况进行选择。