在 Go 语言中切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一个可变长度的序列,用于存储相似类型的元素,不允许在同一个切片中存储不同类型的元素。
在 Go 字节切片中,您可以借助HasSuffix()函数检查给定的切片是否以指定的前缀结尾。如果给定的切片以指定的后缀开头,则此函数返回 true,如果给定的切片不以指定的后缀结尾,则返回 false。它是在 bytes 包下定义的,因此您必须在程序中导入 bytes 包才能访问 HasSuffix函数。
句法:
func HasSuffix(slice_1, suf []byte) bool
这里, slice_1是原始字节片, suf是后缀,也是字节片。此函数的返回类型为 bool 类型。
例子:
// Go program to illustrate how to check the
// given slice ends with the specified suffix
package main
import (
"bytes"
"fmt"
)
func main() {
// Creating and initializing slices of bytes
// Using shorthand declaration
slice_1 := []byte{'G', 'E', 'E', 'K', 'S', 'F',
'o', 'r', 'G', 'E', 'E', 'K', 'S'}
slice_2 := []byte{'A', 'P', 'P', 'L', 'E'}
// Checking whether the given slice
// ends with the specified suffix or not
// Using HasSuffix function
res1 := bytes.HasSuffix(slice_1, []byte("S"))
res2 := bytes.HasSuffix(slice_2, []byte("O"))
res3 := bytes.HasSuffix([]byte("Hello! I am Apple."), []byte("Hello"))
res4 := bytes.HasSuffix([]byte("Hello! I am Apple."), []byte("Apple."))
res5 := bytes.HasSuffix([]byte("Hello! I am Apple."), []byte("."))
res6 := bytes.HasSuffix([]byte("Hello! I am Apple."), []byte("P"))
res7 := bytes.HasSuffix([]byte("Geeks"), []byte(""))
// Displaying results
fmt.Println("Result_1: ", res1)
fmt.Println("Result_2: ", res2)
fmt.Println("Result_3: ", res3)
fmt.Println("Result_4: ", res4)
fmt.Println("Result_5: ", res5)
fmt.Println("Result_6: ", res6)
fmt.Println("Result_7: ", res7)
}
输出:
Result_1: true
Result_2: false
Result_3: false
Result_4: true
Result_5: true
Result_6: false
Result_7: true