菜鸟笔记
提升您的技术认知

Go strings.HasPrefix函数

描述

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
}