报告使用 strings.HasPrefix 检查前缀,随后又使用 strings.TrimPrefix 移除该前缀的代码。

此模式会对前缀进行两次扫描。 strings.CutPrefix 会用一步移除前缀,并返回更新后的字符串以及一个用于报告该前缀是否存在的布尔值。

示例:


func Strip(s string) (string, bool) {
	if strings.HasPrefix(s, "v") {
		return strings.TrimPrefix(s, "v"), true
	}
	return s, false
}

要修正代码,请使用将 HasPrefix/TrimPrefix 替换为 CutPrefix 快速修复。

在应用快速修复后:


func Strip(s string) (string, bool) {
	if after, ok := strings.CutPrefix(s, "v"); ok {
		return after, true
	}
	return s, false
}