描述
strings.HasPrefix函数用来检测字符串是否以指定的前缀开头。
语法
需要导入 strings包
strings.Hasprefix(s, prefix)
参数
参数 | 说明 | 备注 |
s | 待检测的字符串 | 字符串类型的参数 |
prefix | 指定的前缀 |
字符串类型的参数 |
返回值
返回一个布尔值。如果字符串s是以prefix开头,则返回true,否则返回false。
使用示例
package main
import (
"fmt"
"strings"
)
func main() {
flavor := "hw:numa_notes"
if strings.HasPrefix(flavor, "hw") {
fmt.Println("It's a 'hw' flavor.")
} else {
fmt.Println("Unknown flavor.")
}
}
运行结果
It's a 'hw' flavor.
源码分析
下面是go 1.12 HasPrefix()函数的源码。
可以看出当s长度小于prefix时,HasPrefix返回False。
当s长度不小于prefix时,且s在区间[0, len(prefix))上的子字符串等于prefix,HasPrefix()返回True。
// HasPrefix tests whether the string s begins with prefix.
func HasPrefix(s, prefix string) bool {
return len(s) >= len(prefix) && s[0:len(prefix)] == prefix
}